我正在尝试设计一个特定的页面,与下面的代码非常相似。 JS Fiddle



#body {                   /* is actually absolute positioned  */
  width: 800px;
  height: 400px;
}

#parent {
  display: flex;
}

#child1 {
  flex: 1;
  overflow: auto;
  background-color: yellow;
}

#child2 {
  flex: 0 0 150px;
  background-color: green;
}

#big {
  width: 900px;
  height: 490px;
  background-color: white;
}

<div id="body">
  <div id="dummy">
    <!-- Other content here -->
    <div id="parent">
      <div id="child1">
        <div id="big"></div>
      </div>
      <div id="child2"></div>
    </div>
  </div>
</div>





我需要添加到页面上的元素中的最小CSS是什么,以使父div永远不会超出body div的尺寸。

最佳答案

将高度设置为100vh而不是100%,因为在高度情况下视口单位的工作效率要高于百分比。
重写flex代码,它将支持以下及其新版本:
IE 10,Safari 6,Firefox 20,Opera 12。



#body, #dummy, #parent {
  width: 100%;
  height: 100vh;
}

#body {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100vh;
}

#dummy {
  position: relative;
  float: left;
}

#parent {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}

#child1 {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  overflow: auto;
  background-color: yellow;
}

#child2 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 150px;
          flex: 0 0 150px;
  background-color: green;
}

#big {
  width: 900px;
  height: 490px;
  background-color: white;
}

<div id="body">
  <div id="dummy">
    <div id="parent">
      <div id="child1">
        <div id="big"></div>
      </div>
      <div id="child2"></div>
    </div>
  </div>
</div>

关于html - CSS大小调整-限制子级到父级的尺寸,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44491922/

10-11 08:15