CSS中清楚浮动的几种方法

清除浮动的几种方法

2017-02-16  19:03:17



  当某元素的子元素设置浮动时,该元素就会产生塌陷,无法自适应高度。这种情况的出现严重影响了网页排版,因此我们必须要清除浮动来避免浮动溢出,父元素塌陷的发生。以下有几种清除浮动的方法:

方法和描述 代码示范 优弊

一、浮动后在结尾加一个空的标签(如:<div>、<p>等),设置属性clear:both;

这样可以让父级元素自动获得高度

<!-----HTML代码---->
<div>
 <div class=‘fl‘>左浮动</div>
 <div class=‘fr‘>右浮动</div>
 <div class=‘clear‘></div>
</div>
/*********CSS代码**********/
.fl{float:left;}
.fr{float:right;}
.clear{clear:both;}

优点:简单、代码少,浏览器支持好,不容易出现怪问题

缺点:增加了空标签,会影响浏览器的解析速度

二、给设置浮动的元素的父级元素添加overflow CSS属性,属性设置为hidden或者auto

1 <!-----HTML代码---->
2 <div class=‘clear‘ >
3 <div class=‘fl‘>左浮动</div>
4 <div class=‘fr‘>右浮动</div>
5 </div>
1 /***********CSS代码***********/
2 .fl{float:left;}
3 .fr{float:right;}
4 .clear{
5 overflow:hidden;
6 zoom:1; /*兼容IE浏览器*/
7 }
8 /***.clear{overflow:auto;}****/


优点:代码少,容易上手,浏览器支持好

缺点:不能和position属性配合使用。同时使用position会出现以下情况:如果是使用hidden清除浮动,超出的部分会被隐藏;如果使用auto清除浮动,子元素的尺寸过大时会出现滚动条

三、使用为元素:after来清除浮动,如右边案例所示,表示在clear类的div元素后插入内容,并设置该内容的样式

1 <!-----HTML代码---->
2 <div class=‘clear‘ >
3 <div class=‘fl‘>左浮动</div>
4 <div class=‘fr‘>右浮动</div>
5 </div>
6  
 1 /***********CSS代码***********/
 2 .fl{float:left;}
 3 .fr{float:right;}
 4 .clear:after{
 5 content:‘.‘;
 6 display:disblock;
 7 width:0;
 8 height:0;
 9 visibility:hidden;
10 clear:both;
11 }
12 .clear{
13 zoom:1; /*兼容IE浏览器,触发hasLayout*/
14 }


优点:浏览器支持好,不容易出现一些意想不到的问题,大型网站如新浪、网易等都有使用这个方法

缺点:代码较多,初学者相对其他方式不容易掌握

四、float-in-float,将父级元素和子元素都设置浮动,并在与父级元素同级的下一个相邻元素中设置clear:both;

1 <!-----HTML代码---->
2 <div class=‘clear‘ >
3 <div class=‘fl‘>左浮动</div>
4 <div class=‘fr‘>右浮动</div>
5 </div>
6 <div class=‘cnt‘>content</div>
7  
1 /***********CSS代码***********/
2 .fl{float:left;}
3 .fr{float:right;}
4 .clear{
5 float:left;
6 }
7 .cnt{
8 clear:both;
9 }

缺点:可能会出现新的浮动问题

建议:伪元素清除浮动应用于网页主体排版,overflow清除浮动应用于网页中具体内容的一些小模块;但是有时候要具体情况具体分析,能达到想要的效果就是好方法!

时间: 2024-12-17 08:08:35

CSS中清楚浮动的几种方法的相关文章

css中清除浮动的几种方法(自己总结)

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>清除浮动</title> <style type="text/css"> ul{list-style:none;outline:1px solid;} ul li{padding:5px 8px;background:#ccc;f

CSS中隐藏内容的3种方法

CSS中隐藏内容的3种方法 一般有:隐藏文本/图片.隐藏链接.隐藏超出范围的内容.隐藏弹出层.隐藏滚动条.清除错位和浮动等. 1.使用display:none来隐藏所有内容 display:none可以让网页中所有内容不显示,如代码.文字.链接.图片.div层,是推荐的内容隐藏方式. <div style="display:none;">隐藏内容</div> 值 描述 none 此元素不会被显示. block 此元素将显示为块级元素,此元素前后会带有换行符. i

css中的浮动与三种清除浮动的方法

说到浮动之前,先说一下CSS中margin属性的两种特殊现象 1, 外边距的合并现象: 如果两个div上下排序,给上面一个div设置margin-bottom,给下面一个div设置margin-top,那么两个margin会发生合并现象,合并以后的值较大的那个. 对于这种现象一般不用处理. 2,margin塌陷现象: 如果一个大盒子中包含一个小盒子给小盒子设置margin-top大盒子会一起向下平移. 解决方案: 1.0给大盒子加一个边框border属性. 2.0给大盒子设置一个overflow

CSS中清除浮动的两种方式

在CSS中,父元素中的子元素如果使用了float,会导致父元素塌陷,高度为0. 对于这种情况,常见的解决方式有两种. 一.增加新的div,应用clear:both属性 html: 1 <div class="father"> 2 <div class="div1">1</div> 3 <div class="div2">2</div> 4 <div class="div3

css中元素居中的几种方法

对于在网页端布局,垂直居中难于水平居中,同时实现水平和垂直居中是最难的.在移动端,因为设备的宽高是可变的,故一些方案很难实现.以下使用几种方案对下面的html去实现居中,如有不足,可以提出宝贵的意见: <div class="center"> <img src="1.jpg" alt> </div> 1. 使用text-align水平居中 这种方案只能使水平居中,要想垂直居中的话,要给div添加padding或给内容添加margi

CSS中隐藏内容的3种方法及属性值

在制作网页时,隐藏内容也是一种比较常用的手法,它的作用一般有:隐藏文本/图片.隐藏链接.隐藏超出范围的内容.隐藏弹出层.隐藏滚动条.清除错位和浮动等等. 使用CSS即可使以上提到的内容隐藏起来,几种隐藏内容的方法: 1.使用display:none来隐藏所有内容 display:none可以让网页中所有内容不显示,如代码.文字.链接.图片.div层,是推荐的内容隐藏方式. <div style="display:none;">我不占地儿,你看不见我:</div>

css中元素水平垂直居中4种方法介绍

table-cell轻松设置文本图片水平垂直居中 让一个元素垂直居中的思路:把这个元素的容器设置为table-cell,也就是具有表格单元格的特性,再使用vertical-align(这个属性对block元素不起作用,但对table-cell元素是有效的)设置元素垂直居中,即可达到我们想要的效果. IE7及以下版本不支持此方法,IE8及以上版本及大部分的主流浏览器都很好的支持. HTML代码  代码如下   <div class="img">    <img src=

CSS 清除浮动的四种方法

在实际项目中,我们经常会用到float属性来对页面进行布局.当使用float时,意味着该元素已经脱离了文档流,相当于浮于文档之上,不占据空间.但是针对兄弟元素为文字内容时,会占据一定空间,从而产生文字环绕的效果.如果不清除浮动,会导致父元素的高度撑不开等一系列问题. 那如何清除浮动呢?给出以下几种方法,一些不常用的就不说明了. 1.对浮动元素的父容器添加after伪类,并给伪类设置clear属性(给浮动元素的周围元素添加clear属性,清除该浮动元素)在浮动元素的后面增加一个块元素,对块元素设置

css清除浮动的几种方法整理

此为未清除浮动源代码,运行代码无法查看到父级元素浅黄色背景. <style type="text/css"> <!– *{margin:0;padding:0;} body{font:36px bold; color:#F00; text-align:center;} #layout{background:#FF9;} #left{float:left;width:20%;height:200px;background:#DDD;line-height:200px;}