当屏幕宽度变小时,绝对定位的Div离开屏幕

时间:2020-06-21 22:54:46

标签: css reactjs

我现在正在为我的投资组合建立一个像这样的网站。 Link
当您水平减小屏幕尺寸时,包含人像的框不会移出屏幕,而我的会减小。有没有办法防止这种情况并使它像示例网站一样?

另一个问题是,我发现当屏幕宽度小于900px时,在主框下方会创建一个巨大的空白区域。我不知道为什么会这样以及如何解决它。

My website

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>
    );
  }
}

2 个答案:

答案 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>