Cra*_*lot 6 html css safari iframe google-chrome
在 Safari 中使用 flex 设置 iframe 高度不起作用。在 Safari 中,iframe 的高度上限为默认高度 150。
这个 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;
}
Run Code Online (Sandbox Code Playgroud)
Safari 似乎无法height:100%像 Chrome 和 Firefox 那样解决 iframe 的问题。相反,您可以通过调整代码来考虑 Flexbox 的拉伸效果,如下所示:
#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;
}Run Code Online (Sandbox Code Playgroud)
<div id="rootBox">
<div id="mainBox">
<div id="previewBox">
<iframe class="previewContent"></iframe>
</div>
</div>
</div>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
450 次 |
| 最近记录: |