我现在正在为我的投资组合建立一个像这样的网站。 Link
当您水平减小屏幕尺寸时,包含人像的框不会移出屏幕,而我的会减小。有没有办法防止这种情况并使它像示例网站一样?
另一个问题是,我发现当屏幕宽度小于900px时,在主框下方会创建一个巨大的空白区域。我不知道为什么会这样以及如何解决它。
HomeMain.js
window
CenterBox.js
export class HomeMain extends Component {
render() {
return (
<>
<div className="main-box">
<div className="left-main-box"></div>
<div className="right-main-box"></div>
<CenterBox />
</div>
</>
);
}
}
App.scss
export class CenterBox extends Component {
render() {
return (
<div className="main-center-box">
<div className="left-center-box">left-center</div>
<div className="right-center-box">right-center</div>
</div>
);
}
}
答案 0 :(得分:1)
示例网站中包含图像的元素并不像您一样居中于绝对居中。而是应用相对于视口宽度计算的边距:
margin: 72px 0px 44px calc((100% - 980px) * 0.5);
通过使用calc()
(Docs)表示公式来设置第四个边距值,该公式基本上将大型设备上的左边距设置为越来越高的值,同时返回{{1} }在980像素以下的显示器上。
对于第二个问题:0
的最小宽度为400px,而其.left-main-box
的权限仅在小屏幕上换行了。通过像这样计算宽度:
.right-main-box
您将获得所需的间距。
答案 1 :(得分:0)
您可以将Image元素相对于Image Container而不是正文的大小居中放置。
* {
margin: 0;
padding: 0;
}
body {
height: 100vh;
overflow-y: hidden;
}
.container {
position: relative;
height: 100%;
background-color: blue;
}
.image {
--size: 100px;
position: absolute;
top: calc(50% - var(--size) / 2);
left: calc(50% - var(--size) / 2);
width: var(--size);
height: var(--size);
background-color: lightblue;
}
<div class="container">
container
<div class="image">
Image
</div>
</div>