如何将底部填充添加到包含浮动div的div?

时间:2009-01-02 09:51:09

标签: css

我有一个包含其他浮动div的div:

< div id =“parent”>
< div style =“float:left;”> text< / div>
< div style =“float:left;”> text< / div>
< div style =“float:right;”> text< / div>
< / DIV>

如何将底部填充添加到父div并使其在IE6中工作(或者换句话说避免IE6中的错误)?

由于

5 个答案:

答案 0 :(得分:5)

在我的CSS重置文件中,我有一个“clearfix”代码:

.clearfix:after {
    content:".";
    display:block;
    height:0;
    clear:both;
    visibility:hidden;
}
.clearfix {display:inline-block;}
/* Hide from IE Mac \*/
.clearfix {display:block;}
/* End hide from IE Mac */
* html .clearfix {height:1px;}

看起来很奇怪,但在所有常见浏览器上运行良好:IE6 / 7,FF2 / 3,Opera,Safari。

如何使用?

这样的事情:

<div class="clearfix">
    <div class="floatLeft">
        left div
    </div><!-- /.floatLeft-->

    <div class="floatRight">
        right div
    </div><!-- /.floatRight-->
</div><!-- /.clearfix-->

<强>注意! NOT 在页脚上使用clearfix类(或在页面的最后一个元素中),否则在所有内容下都会有一个丑陋的空间。

答案 1 :(得分:3)

尝试浮动父div。

答案 2 :(得分:1)

基本上提供IE特定填充的box model hack应该有帮助

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
 "http://www.w3.org/TR/html4/strict.dtd">

<html>
<head>
<title>demo</title>

<style type="text/css">
<!-- 
div {
height:100px;
border:1px solid black;
padding-bottom:10px;
}
div {
\height: 140px;
h\eight: 100px;
}  
-->
</style>

</head>
<body>

<div id="parent" style="float:left;">
  <div style="float:left;">text</div>
  <div style="float:left;height:100px">text</div>
  <div style="float:right;">text</div>
</div>
</body>
</html>

答案 3 :(得分:1)

当所有子项都浮动时,IE似乎没有计算父级的高度。如果您可以通过向父级应用固定高度,则可以添加底部填充。

如果你无法修正父母的身高,我接下来要做的就是看看有没有办法从最高的孩子div中移除浮子。这将给父div一个实际高度,然后底部填充应该出现。

答案 4 :(得分:0)

与其他答案类似,这个在Firefox中适用于我,并且使用的代码更少。我认为它在其他浏览器中运行良好,但你应该确认。

.clearFix::after{
content: '';
display: block;
clear: both;
}