查看以下内容:
http://jsfiddle.net/symposion/P8KBe/7/
在 IE8 中,然后是 Chrome/Firefox/IE9+。您会注意到,在 IE8 中,内部蓝色 div 在最外层 div 的边缘被切掉#slicer
,尽管事实上它#outer
只是overflow:hidden
. 如果我将min-height
on #outer 更改为显式height
,问题就会消失。
这个例子可能看起来是做作的,但这只是因为我在这里简化了它。我在一个真实的项目中遇到过这个问题,这让我很头疼,因为我改变正在使用的布局原则的范围有限——还有太多其他依赖项。我在这里寻找两件事:
这是某处列出的已知错误吗?这个问题最简单的陈述是什么?我仍然不觉得我真正理解导致 IE8 出错的潜在错误;它仍然不是一个特别简单的测试用例。
是否有不涉及更改
#outer
and样式的解决方法#slicer
?在我的真实世界示例中,这些是较大页面框架的一部分,我将难以更改,而该#inner
位更容易在我的控制之下。
(更新)原始示例非常做作,力求最小化。我在这里创建了一个新的 JSFiddle:http: //jsfiddle.net/symposion/NDa6U/,它可以更好地了解现实世界的问题。如果您在 IE8 中调整 html 窗格的大小,您会注意到最终绿色的内部内容部分开始被错误地截断。我正在寻找的是让这部分保持它所包含的 div 高度的 100%,理想情况下不必对#innerContainer
. 但老实说,我会对任何保留基本布局原则的解决方案感兴趣(底部部分从定义的像素位置扩展到距页面底部的定义距离,但具有最小高度)在 IE8 中。