这个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
,一切都正常。但这与固定位置的子元素有什么关系呢?它应该始终相对于视口定位。这是一个已知的/记录的错误吗?背后的原理是什么?
border-radius:30px
添加到.footer
中,您会发现只有左上角发生了变化——这是因为某种方式.root
的边距被反转并且正在剪切带有圆角边距的.footer
。所以这就解释了为什么改变overflow
会影响它,但我不知道为什么存在border-radius
会破坏它。 - brentonstrine