CSS 清除浮动元素方法 整理
发布时间:2009-09-03 18:02:11 作者:佚名 我要评论
在进行浮动布局时,大多数人都深知,在必要的地方进行浮动清理:。
例如:
<div style=”background:#666;”>
<div style=”float:left; width:30%; height:40px;background:#EEE; “>Some Content</div>
</div>
此时预览此代码,我们会发现最外层的父元素float container,并没有显示。这是因为子元素因进行了浮动,而脱离了文档流,导致父元素的height为零。
若将代码修改为:
<div style=”background:#666;”>
<div style=”float:left; width:30%; height:40px;background:#EEE; “>Some Content</div>
<div style=”clear:both”></div>
</div>
注意,多了一段清理浮动的代码。这是一种好的CSS代码习惯,但是这种方法增加了无用的元素。这里有一种更好的方法,将HTML代码修改为:
<div class=”clearfix” style=”background:#666;”>
<div style=”float:left; width:30%; height:40px;background:#EEE; “>Some Content</div>
</div>
定义CSS类,进行“浮动清理”的控制:
.clearfix:after {
content: “.”;
clear: both;
height: 0;
visibility: hidden;
display: block;
}
这是对Firefox进行的处理,因为Firefox支持生成元素,而IE所有版本都不支持生成元素
.clearfix {
display: inline-block;
}
/* 这是对 Mac 上的IE浏览器进行的处理 */
* html .clearfix {height: 1%;}
/* 这是对 win 上的IE浏览器进行的处理 */
.clearfix {display: block;}
/* 这是对display: inline-block;进行的修改,重置为区块元素*/
会发现即使子元素进行了浮动,父元素float container仍然会将其包围,进行高度自适应。
clear元素的margin-top被重置为零
<div style=”background:#666;”>
<div style=”float:left; width:30%; height:40px;background:#EEE; “>Some Content</div>
</div>
此时预览此代码,我们会发现最外层的父元素float container,并没有显示。这是因为子元素因进行了浮动,而脱离了文档流,导致父元素的height为零。
若将代码修改为:
<div style=”background:#666;”>
<div style=”float:left; width:30%; height:40px;background:#EEE; “>Some Content</div>
<div style=”clear:both”></div>
</div>
注意,多了一段清理浮动的代码。这是一种好的CSS代码习惯,但是这种方法增加了无用的元素。这里有一种更好的方法,将HTML代码修改为:
<div class=”clearfix” style=”background:#666;”>
<div style=”float:left; width:30%; height:40px;background:#EEE; “>Some Content</div>
</div>
定义CSS类,进行“浮动清理”的控制:
复制代码
代码如下:.clearfix:after {
content: “.”;
clear: both;
height: 0;
visibility: hidden;
display: block;
}
这是对Firefox进行的处理,因为Firefox支持生成元素,而IE所有版本都不支持生成元素
.clearfix {
display: inline-block;
}
/* 这是对 Mac 上的IE浏览器进行的处理 */
* html .clearfix {height: 1%;}
/* 这是对 win 上的IE浏览器进行的处理 */
.clearfix {display: block;}
/* 这是对display: inline-block;进行的修改,重置为区块元素*/
会发现即使子元素进行了浮动,父元素float container仍然会将其包围,进行高度自适应。
clear元素的margin-top被重置为零
相关文章
- 当一个元素只包含浮动元素的时候,它会出现高度折叠,即元素的上下底边重合,和高度为0效果一样,针对这个问题与大家分享四种解决方法,感兴趣的你可以参考下本文或许对你2013-03-04
- 刚入门网站设计布局的开发者肯定会碰到这样的问题,那就是当子容器全部浮动的时候,父容器的高度不能自动撑开,今天偶也遇此问题,需要了解的朋友可以参考下2012-12-27
- 翻译自Matthew James Taylor的Equal Height Columns with Cross-Browser CSS and No Hacks,有些部分根据我的理解改了,让一些初心者更好理解。2009-11-12
- 由于浮动的元素脱离了文档流,所以它们不会在网页文档中占据空间。如果一个DIV容器中想要包含这些浮动的元素的话,有两种办法。2011-08-02
CSS教程:div设置float后高度不自动增加-CSS教程-网页制作-网页教学网
相关文章:http://www.webjx.com/css/divcss-4952.html http://www.webjx.com/css/divcss-5991.html 本来想把这个题目修改为“闭合浮动元素”或&l2008-10-17- 在网页制作中经常会用到浮动。用了浮动就会涉及到一个清除浮动的问题,因为包含浮动的元素是不会自动适应高度的,也就是不会被浮动元素撑开。2010-07-23
- 在ie8、chrome浏览器中,包裹浮动的li元素的外层ul高度为0,ie7浏览器和ie8兼容模式显示正常,下面与大家分享下多种解决方法大家可以根据情况自由选择,希望对大家有所帮助2013-07-31
最新评论