CSS 清除浮动的4种方法

此为未清除浮动源代码,运行代码无法查看到父级元素浅黄色背景。<style type=”text/css”>

  1. <!–
  2. *{margin:0;padding:0;}
  3. body{font:36px bold; color:#F00; text-align:center;}
  4. #layout{background:#FF9;}
  5. #left{float:left;width:20%;height:200px;background:#DDD;line-height:200px;}
  6. #right{float:right;width:30%;height:80px;background:#DDD;line-height:80px;}
  7. –>
  8. </style>
  9. <div id=”layout”>
  10. <div id=”left”>Left</div>
  11. <div id=”right”>Right</div>
  12. </div>

复制代码

未清除浮动前如图所示:

四种清除浮动方法如下:

1、使用空标签清除浮动。 我用了很久的一种方法,空标签可以是div标签,也可以是P标签。这种方式是在需要清除浮动的父级元素内部的所有浮动元素后添加这样一个标签清除浮动,并为其定义CSS代码:clear:both。此方法的弊端在于增加了无意义的结构元素。
对于使用额外标签清除浮动(闭合浮动元素),是W3C推荐的做法。至于使用<br
/>元素还是空<div></div>可以根据自己的喜好来选(当然你也可以使用其它块级元素)。不过要注意的
是,<br
/>本身是有表现的,它会多出一个换行出来,所以要设定它的heigh为0,以隐藏它的表现。所以大多数情况下使用空<div>比较合
适。<style type=”text/css”>

  1. <!–
  2. *{margin:0;padding:0;}
  3. body{font:36px bold; color:#F00; text-align:center;}
  4. #layout{background:#FF9;}
  5. #left{float:left;width:20%;height:200px;background:#DDD;line-height:200px;}
  6. #right{float:right;width:30%;height:80px;background:#DDD;line-height:80px;}
  7. .clear{clear:both;}
  8. –>
  9. </style>
  10. <div id=”layout”>
  11. <div id=”left”>Left</div>
  12. <div id=”right”>Right</div>
  13. <div class=”clear”>
  14. </div>
  15. </div>

复制代码

2、
使用overflow属性。
此方法有效地解决了通过空标签元素清除浮动而不得不增加无意代码的弊端。使用该方法是只需在需要清除浮动的元素中定义CSS属
性:overflow:auto,即可!也可以用overflow:hidden;”zoom:1″用于兼容IE6,也可以用width:100%。
不过使用overflow的时候,可能会对页面表现带来影响,而且这种影响是不确定的,你最好是能在多个浏览器上测试你的页面;

  1. <style type=”text/css”>
  2. <!–
  3. *{margin:0;padding:0;}
  4. body{font:36px bold; color:#F00; text-align:center;}
  5. #layout{background:#FF9;overflow:auto;zoom:1; }   /* overflow:auto可以换成overflow:hidden,zoom:1可以换成width:100%*/
  6. #left{float:left;width:20%;height:200px;background:#DDD;line-height:200px;}
  7. #right{float:right;width:30%;height:80px;background:#DDD;line-height:80px;}
  8. –>
  9. </style>
  10. <div id=”layout”>
  11. <div id=”left”>Left</div>
  12. <div id=”right”>Right</div>
  13. </div>

复制代码

3、
使用after伪对象清除浮动。 该方法只适用于非IE浏览器
。具体写法可参照以下示例。使用中需注意以下几点。一、该方法中必须为需要清除浮动元素的伪对象中设置height:0,否则该元素会比实际高出若干像
素;二、content属性是必须的,但其值可以为空,蓝色理想讨论该方法的时候content属性的值设为”.”,但我发现为空亦是可以
的。<style

  1. type=”text/css”>
  2. <!–
  3. *{margin:0;padding:0;}
  4. body{font:36px bold; color:#F00; text-align:center;}
  5. #layout{background:#FF9;}
  6. #layout:after{display:block;clear:both;content:”";visibility:hidden;height:0;}
  7. #left{float:left;width:20%;height:200px;background:#DDD;line-height:200px;}
  8. #right{float:right;width:30%;height:80px;background:#DDD;line-height:80px;}
  9. –>
  10. </style>
  11. <div id=”layout”>
  12. <div id=”left”>Left</div>
  13. <div id=”right”>Right</div>
  14. </div>

复制代码

4、浮动外部元素,float-in-float。这种方法很简单,就是把“#outer”元素也进行浮动(向左或者向右)。
但是这种方法带来的别外一个问题就是和“#outer”相邻的下一个元素会受到“#outer”的影响位置会产生变化,所以使用这种方法一定要小心。有选
择把页面中的所有元素都浮动起来,最后使用一个适当的有意义的元素(比如页脚)进行清理浮动,这有助于减少不必要的标记,但是过多的浮动会增加布局的难
度。<style type=”text/css”>

  1. <!–
  2. *{margin:0;padding:0;}
  3. body{font:36px bold; color:#F00; text-align:center;}
  4. #layout{background:#FF9;float:left;}
  5. #left{float:left;width:20%;height:200px;background:#DDD;line-height:200px;}
  6. #right{float:right;width:30%;height:80px;background:#DDD;line-height:80px;}
  7. –>
  8. </style>
  9. <div id=”layout”>
  10. <div id=”left”>Left</div>
  11. <div id=”right”>Right</div>
  12. </div>

复制代码

前三种方法清除浮动后如图所示:(第四种方法将导致外层div不会占整行,因为自身float:left了)

时间: 2024-08-07 18:40:51

CSS 清除浮动的4种方法的相关文章

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;}

css清除浮动的几种方法以及对应规范说明

css清除浮动的几种方法以及对应规范说明 1.{clear:both;}设置了clear 属性的元素,其上边框位置会紧贴浮动元素的 margin-bottom 边界位置渲染,使包含浮动元素的容器高度正常.所以适用于浮动元素后面容器之内有个非浮动元素,或是额外添加一个新的空元素. 2..after- clear-float :after{content:""; display:block; clear:both;}利用伪类添加新元素,原理同上,所以只适用于父容器最后一级子元素是浮动的,即

【转】浅谈 CSS 清除浮动的 6 种方法

转载:浅谈 CSS 清除浮动的 6 种方法 在开发网页的时候经常需要用到各种浮动,此时便需要及时的清除浮动,否则将会导致布局出现问题 引出问题: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> <style> .outer{ border: 1px solid black;

[Web 前端] 018 css 清除浮动的四种方法

清除浮动的四种方法 加 clear: ...(见例1) 父级上增加属性 overflow:hidden(见例2.1) 在最后一个子元素的后面加一个空的 div,给它一个样式属性 clear: both(不推荐)(见例2.2) 使用成熟的清浮动样式类 clearfix(见例3) 少废话,上例子 例 1 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>test

CSS清除浮动的三种方法,很实用

CSS清除浮动的方法有哪些呢?经常性地会使用到float,很多邪门的事儿都有可能是浮动在作怪,清除浮动是必须要做的,而且随时性地对父级元素清除浮动的做法也被认为是书写CSS的良好习惯之一. 下面看今天的教程,此为未清除浮动源代码,运行代码无法查看到父级元素浅黄色背景. <style type=”text/css”> <!–     *{margin:0;padding:0;}     body{font:36px bold; color:#F00; text-align:center;}

CSS清除浮动的三种方法,很实用。

CSS清除浮动的方法有哪些呢?经常性地会使用到float,很多邪门的事儿都有可能是浮动在作怪,清除浮动是必须要做的,而且随时性地对父级元素清除浮动的做法也被认为是书写CSS的良好习惯之一.下面看今天的教程,此为未清除浮动源代码,运行代码无法查看到父级元素浅黄色背景. <style type=”text/css”><!–    *{margin:0;padding:0;}    body{font:36px bold; color:#F00; text-align:center;}    

关于CSS清除浮动的几种方法

如果一个父元素的所有子元素都设置了float效果,则该父元素的高度不会被撑开且颜色也不会显示.这是因为子元素设置float效果后脱离了标准的文档流, 不占据文档空间所以不能把父元素撑开.有时为了解决这个问题可以使用下面几种方法来清除浮动效果. 方法一:使用空标签 该方法就是在子元素后再添加一个空标签,空标签可以是<div>也可以是<p>等,但是要设置样式clear : both ;这样就可以达到清除浮动的效果. 方法二:给父元素设置overflow: auto; 该方法是给父元素设

css清除浮动的8种方法

参考来源:http://www.jb51.net/css/173023.html 常用方法如下: <style type="text/css"> .div1{background:#000080;border:1px solid red;} .div2{background:#800080;border:1px solid red;height:100px;margin-top:10px} .left{float:left;width:20%;height:200px;ba