html - Flexbox 在 Safari 中设置错误的 iframe 高度

标签 html css google-chrome iframe safari

在 Safari 中使用 flex 设置 iframe 高度不起作用。在 Safari 中,iframe 的高度上限为默认高度 150。

This questionthis question相似,但解决方案没有帮助。

这个 Codepen 说明了这个问题:红色矩形在 Chrome 和 Firefox 中比 150px 高得多,几乎占据了它应该占据的所有黑色矩形,但 iframe 在 Safari 中只有 150px 高。

代码笔:https://codepen.io/anon/pen/rEQbMG

<div id="rootBox">
  <div id="mainBox">
    <div id="previewBox">
      <iframe class="previewContent"></iframe>
    </div>
  </div>  
</div>

#rootBox {
  width: 100%;
  height: 700px;
  display: flex;
  background-color: #FFF;
  flex-grow: 1;
  box-sizing: border-box;
  margin: auto;
}

#mainBox {
  background: black;
  height: 100%;
  flex-grow: 1;
  flex-shrink: 1;
  display: flex;
  flex-direction: column;
  align-content: stretch;
  box-sizing: border-box;
}


#previewBox {
  background: yellow;
  flex-grow: 1;
  width: 100%;
  margin: 25px auto 25px;
}


#previewBox .previewContent {
  width: 100%;
  height: 100%;
  background: red;
}

最佳答案

Safari 似乎无法像 Chrome 和 Firefox 那样为 iframe 解析 height:100%。相反,您可以通过如下调整代码来考虑 flexbox 的拉伸(stretch)效果:

#rootBox {
  width: 100%;
  height: 700px;
  display: flex;
  background-color: #FFF;
  flex-grow: 1;
  box-sizing: border-box;
  margin: auto;
}

#mainBox {
  background: black;
  height: 100%;
  flex-grow: 1;
  flex-shrink: 1;
  display: flex;
  flex-direction: column;
  align-content: stretch;
  box-sizing: border-box;
}


#previewBox {
  background: yellow;
  flex-grow: 1;
  display:flex; /* Added */
  width: 100%;
  margin: 25px auto 25px;
}


#previewBox .previewContent {
  width: 100%;
 /* height: 100%; removed */
  background: red;
}
<div id="rootBox">
  <div id="mainBox">
    <div id="previewBox">
      <iframe class="previewContent"></iframe>
    </div>
  </div>  
</div>

关于html - Flexbox 在 Safari 中设置错误的 iframe 高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56948484/

相关文章:

html - 文本迫使 DIV 不保持相同的大小

jquery - 如何使用滚动条查看可拖动div中的长内容?

jquery - 由于混合内容问题 (http/https),​​XHR 响应被 Chrome 阻止

python - Selenium Chrome Headless 下载文件

google-chrome - 是否可以开发不是 chrome 扩展的 Chrome 书签管理器应用程序,即独立于 chrome 浏览器运行的应用程序?

php - "input type=text"中的默认文本

javascript - 无法获取 HTML ANCHOR + 如何覆盖 anchor 的 .onclick

javascript - 为什么javascript有一组内置对象?

css - 不确定为什么切换显示内容不会下推下一段内容

javascript - 更改选择字段中 select2 选择的背景颜色