html - Flexbox 嵌套容器不会扩展以填充 safari 中的父级

标签 html css flexbox

我试图制作一个嵌套的 100% 屏幕布局,但我遇到了一个问题,即嵌套容器没有填充 safari 中父单元格空间的 100%,即使单元格本身确实展开以填充所有可用空间。如果我将 subContainer 设置为实际的 flex cell,它也可以工作,但出于实际原因我不能这样做。有什么想法吗?

jsfiddle

HTML:

<div id="masterContainer">
  <div id="header">
    header
  </div>

   <div id="content">

    <div id="subContainer">
      <div id="left">
        left
      </div>
      <div id="right">
        right
      </div>
    </div>

   </div>

</div>

CSS:

#masterContainer {

  display: flex;
  flex-direction: column;
  width: 200px;
  height: 200px;
}

#header {

  background: yellow;
}

#content {

  background: grey;
  flex: 1;
}

#subContainer {

  display: flex;
  width: 100%;
  height: 100%;
}

#left {

  background: red;
  width: 50;
}

#right {

  background: green;
  flex: 1;
}

最佳答案

这是 Safari 中此问题的解决方法。
由于 Safari 似乎避免了对非 flex 嵌套容器的计算。

查看this answer

#masterContainer {
  
  display: flex;
  flex-direction: column;
  width: 200px;
  height: 200px;
}

#header {
  
  background: yellow;
}

#content {
  background: grey;
  flex: 1;
  position: relative;
}

#subContainer {
  display: flex;
  width: 100%;
  height: 100%;
  position: absolute;
}

#left {
  
  background: red;
  width: 50px;
}

#right {
  
  background: green;
  flex: 1;
}
<div id="masterContainer">
  <div id="header">
    header
  </div>
    
   <div id="content">
    
    <div id="subContainer">
      <div id="left">
        left
      </div>
      <div id="right">
        right
      </div>
    </div>
   
   </div>
   
</div>

关于html - Flexbox 嵌套容器不会扩展以填充 safari 中的父级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42085524/

相关文章:

html - IE中iframe背景透明

html - 按像素而不是百分比的 CSS3 渐变

html - 是否可以让基于 flexbox 列的列表中的第一项为 100% 而其他项不是?

html - 如何使用 Flex 垂直中心和视口(viewport)单位 vh?

html - 设置为背景时,标题图片不会缩放/拉伸(stretch)到全宽

javascript - Javascript 中的一个有趣的错误

javascript - 需要为悬停效果定义高度,但这会弄乱调整大小

jquery - 将鼠标悬停在同一位置的两个元素上

javascript - 如何使文本框值更改对 jQuery 功能产生影响

css - 如何使用 flexbox 将我的元素每行对齐两个元素?