IE8最小高度和溢出的bug:隐藏?

时间:2012-11-22 12:03:59

标签: html css internet-explorer-8

查看以下内容:

http://jsfiddle.net/symposion/P8KBe/7/

在IE8中,然后是Chrome / Firefox / IE9 +。您会注意到,在IE8中,内部蓝色div在最外面的#slicer div的边缘被切掉,尽管它只是#outer overflow:hidden。如果我将#outer上的min-height更改为显式height,问题就会消失。

这个例子可能看似人为,但只是因为我在这里简化了它。我在一个真实的项目中遇到过这个问题,这引起了一个令人头疼的问题,因为我改变所使用的布局原则的范围有限 - 还有太多的其他依赖项。我在这里寻找两件事:

  1. 这是一个已知错误列在某处吗?这个问题最简单的陈述是什么?我仍然不觉得我真的理解导致IE8错误的潜在错误;它仍然不是一个特别简单的测试案例。

  2. 是否有解决方法不涉及更改#outer#slicer的样式?在我的真实世界示例中,这些是更大页面框架的一部分,我将无法更改,而#inner位更容易在我的控制之下。

  3. (更新)最初的例子非常谨慎,努力做到最小化。我在这里创建了一个新的JSFiddle:http://jsfiddle.net/symposion/NDa6U/,可以更好地了解真实世界的问题。如果您在IE8中调整html窗格的大小,您会注意到最终绿色内部内容部分开始被错误地切断。我正在寻找的是这个部分保持其所包含的div的高度的100%,理想情况下不需要对#innerContainer以外的任何内容进行任何重大更改。但说实话,我会对保留基本布局原则的任何解决方案感兴趣(底部部分从定义的像素位置扩展到距页面底部的定义距离,但是具有最小高度)在IE8中。

1 个答案:

答案 0 :(得分:1)

http://jsfiddle.net/thirtydot/NDa6U/22/怎么样?

#innerContainer {
    padding-bottom: 9999px;
    margin-bottom: -9999px;
}​

以下是有关此技术的一些(相对)旧背景信息:http://www.positioniseverything.net/articles/onetruelayout/combined

从个人经验来看,它适用于所有现代浏览器,没有任何问题。