【发布时间】:2012-10-20 08:58:17
【问题描述】:
这个Fiddle 在真实浏览器中产生了预期的结果(我尝试过FF、GC、Safari),但在IE9、IE10 和IE11 中意外中断。 IE7 或 IE8 都没有问题。
<div class="root">
Top
<div class="footer">Bottom</div>
</div>
.root {
background-color: red;
position: absolute;
height: auto;
bottom: 0; top: 0; left: 0; right: 0;
margin: 25px;
border: 0;
border-radius: 7px;
overflow: hidden;
}
.footer {
background-color: green;
position: fixed;
left: 0;
bottom: 0;
width: 100%;
height: 100px;
}
如果我从父级中删除 border-radius 或 overflow:hidden,一切正常。但它到底与固定位置的孩子有什么关系呢?它应该始终相对于视口定位。
这是一个已知\记录的错误吗?其背后的原理是什么?
【问题讨论】:
-
您能否更清楚地描述预期的行为?
-
左截图。绿色页脚,宽度为屏幕的 100%,高度为 100px。
-
确实很奇怪。将
border-radius:30px添加到.footer,您可以看到只有左上角发生了变化——这是因为不知何故.root的边距被倒置并剪裁.footer(圆角边距!) .这就解释了为什么更改overflow会影响它,但我不知道为什么border-radius的存在会破坏它。
标签: internet-explorer-9 internet-explorer-10 css internet-explorer-11