clearf(clearfy)
网页CSS中的.clearfix是什么意思图文教程
自设class名。一般约定俗成的是清除浮动。
.clearfix{
????overflow:hidden;
????clear:both;
????width:0;
????visibility:hidden;
????}
当然咯。还有简单的方法。就是在当前元素的父级元素上添加overflow:hidden(有局限性,不过简便)
清除浮动指什么? 如何清除浮动?
在非IE浏览器(如Firefox)下,当容器的高度为auto,且容器的内容中有浮动(float为left或right)的元素,在这种情况下,容器的高度不能自动伸长以适应内容的高度,使得内容溢出到容器外面而影响(甚至破坏)布局的现象。这个现象叫浮动溢出,为了防止这个现象的出现而进行的CSS处理,就叫CSS清除浮动。
清除浮动方法:
1、使用带clear属性的空元素
在浮动元素后使用一个空元素如div class="clear"/div,并在CSS中赋予.clear{clear:both;}属性即可清理浮动。亦可使用br class="clear" /或hr class="clear" /来进行清理。
2、使用CSS的overflow属性
给浮动元素的容器添加overflow:hidden;或overflow:auto;可以清除浮动,另外在 IE6 中还需要触发 hasLayout ,例如为父元素设置容器宽高或设置 zoom:1。在添加overflow属性后,浮动元素又回到了容器层,把容器高度撑起,达到了清理浮动的效果。
3、给浮动的元素的容器添加浮动
给浮动元素的容器也添加上浮动属性即可清除内部浮动,但是这样会使其整体浮动,影响布局,不推荐使用。
4、使用邻接元素处理
什么都不做,给浮动元素后面的元素添加clear属性。
5、方法五:使用CSS的:after伪元素
给浮动元素的容器添加一个clearfix的class,然后给这个class添加一个:after伪元素实现元素末尾添加一个看不见的块元素(Block element)清理浮动。
需要注意的是为了IE6和IE7浏览器,要给clearfix这个class添加一条zoom:1;触发haslayout。
总结
BFC清理浮动
通用的清理浮动法案
.clearfix{
*zoom:1;
}
.clearfix:after{
content:".";
display:block;
height:0;
visibility:hidden;
clear:left;
}
.clearfix{
*zoom:1;
}
.clearfix:after{
content:"";
display:table;
clear:both;
}
css clearfix清除浮动是什么意思
clearfix的定义:
[css] view plain copy print?
.clearfix:after {}{
content: "."; /**//*内容为“.”就是一个英文的句号而已。也可以不写。*/
display: block; /**//*加入的这个元素转换为块级元素。*/
clear: both; /**//*清除左右两边浮动。*/
visibility: hidden; /**//*可见度设为隐藏。注意它和display:none;是有区别的。visibility:hidden;仍然占据空间,只是看不到而已;*/
line-height: 0; /**//*行高为0;*/
height: 0; /**//*高度为0;*/
font-size:0; /**//*字体大小为0;*/
}
.clearfix {}{ *zoom:1;} /**//*这是针对于IE6的,因为IE6不支持:after伪类,这个神奇的zoom:1让IE6的元素可以清除浮动来包裹内部元素。*/
.clearfix的原理:
1、在IE6, 7下zoom: 1会触发hasLayout,从而使元素闭合内部的浮动。
2、在标准浏览器下,.clearfix:after这个伪类会在应用到.clearfix的元素后面插入一个clear: both的块级元素,从而达到清除浮动的作用。
3、在需要清除浮动的时候,只要写一个.clearfix就行了,然后在需要清浮动的元素中 添加clearfix类名就好了。
.clearfix {*zoom:1;_height:1px} CSS的这句声明的zoom前的*和height前的_起到什么作用
这个是hack写法,用来识别不同版本的IE浏览器。*后面的属性 IE6 IE7能识别,IE8 IE9……都不能识别;"_"后面的属性,只有IE6能识别,解决方法如下:
1、首先新建一个html文件,命名为test.html。
2、在test.html文件中,分别给两个p标签设置class属性,分别为n1,n2。主要用于下面分别对p标签使用line-height和height样式,讲解它们的区别。
3、为了展示明显的效果,在css标签内,使用css设置p标签的样式,定义p元素为1px灰色边框,宽度为300px,并使用margin-bottom设置两个p标签相隔10px。
4、在css标签内,通过class类名,分别使用line-height和heignt属性设置两个p标签的样式。
5、最后在浏览器打开test.html文件,查看实现的效果。