clearf(clearfy)

http://www.itjxue.com  2023-02-21 12:16  来源:未知  点击次数: 

网页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文件,查看实现的效果。

(责任编辑:IT教学网)

更多

推荐java认证文章