最好的解决IE6中的破箱模型与填充?

时间:2009-02-03 02:31:09

标签: css internet-explorer

我注意到当IE6和IE7内部的元素有填充底部时,IE6和IE7都会将父div推下来...对此最好的解决方法是什么?是否可以使用有效的CSS修复此问题?

修改

我使用的解决方案是在子元素中设置 overflow:auto (如下面接受的答案中所述)。我采用这种方法,因为我的子元素高度是动态的,因此我无法设置它。

3 个答案:

答案 0 :(得分:3)

padding-bottom被添加到子元素的总高度,所以即使子元素为空,padding-bottom:10px;将它的总高度设为10px。在所有现代浏览器中,父元素将展开以为其子元素提供空间。

但是如果您希望在父级上设置一个高度,您可以在父级上设置一个高度并通过overflow控制子级的内容:auto / hidden / scroll ..

或者您可以将父级设置为position:relative;并设定位置:绝对;对于儿童元素。

有点取决于你想要的......

答案 1 :(得分:1)

检查您的设置是否为doctype而不是quirksmode,然后使用reset stylesheet确保所有元素都在同一个脚上开始。

如果您仍然在特定版本的IE中获得额外的填充,请使用conditional comment为该浏览器添加其他样式表。

答案 2 :(得分:1)

当padding应用于子元素时,我还没有看到IE8或Firefox“向下推父”。它只是父元素的高度扩大以容纳孩子。这是CSS中正确的自动行为。我做了一个简短的演示:

http://robertgrant.org/testbed/paddingbottom.xhtml

随意在IE6 / IE7中尝试一下,看看会发生什么(需要启用Javascript才能使链接正常工作,但即使没有它,你也可以看到发生了什么)。

如果要约束父级的高度,则设置它(例如height:100px)并将其overflow属性设置为隐藏。