`

css清除浮动大全

 
阅读更多

我根据自己的经验总结8种清除浮动的方法(测试已通过iechromefirefoxopera,后面三种方法只做了解就可以了):

 

1,父级div定义height

 

<style type="text/css"> 
.div1{background:#000080;border:1px solid red;/*解决代码*/height:200px;}
.div2{background:#800080;border:1px solid red;height:100px;margin-top:10px}
 
.left{float:left;width:20%;height:200px;background:#DDD}
.right{float:right;width:30%;height:80px;background:#DDD}
</style> 
<div class="div1"> 
    <div class="left">Left</div> 
    <div class="right">Right</div> 
</div>
 
<div class="div2">
div2
</div>

原理:父级div手动定义height,就解决了父级div无法自动获取到高度的问题。

优点:简单,代码少,容易掌握

缺点:只适合高度固定的布局,要给出精确的高度,如果高度和父级div不一样时,会产生问题

建议:不推荐使用,只建议高度固定的布局时使用

评分:★★☆☆☆

 

2,结尾处加空div标签clear:both

 

<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;background:#DDD}
.right{float:right;width:30%;height:80px;background:#DDD}
 
/*清除浮动代码*/
.clearfloat{clear:both}
</style> 

 

 

<div class="div1"> 
    <div class="left">Left</div> 
    <div class="right">Right</div>
<div class="clearfloat"></div>
</div>
 
<div class="div2">
div2
</div>



原理:添加一个空div,利用css提高的clear:both清除浮动,让父级div能自动获取到高度

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

缺点:不少初学者不理解原理;如果页面浮动布局多,就要增加很多空div,让人感觉很不爽

建议:不推荐使用,但此方法是以前主要使用的一种清除浮动方法

评分:★★★☆☆

 

3,父级div定义伪类:after和zoom

 

<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;background:#DDD}
.right{float:right;width:30%;height:80px;background:#DDD}
 
/*清除浮动代码*/
.clearfloat:after{display:block;clear:both;content:"";visibility:hidden;height:0}
.clearfloat{zoom:1}
</style> 

 

 

<div class="div1 clearfloat"> 
    <div class="left">Left</div> 
    <div class="right">Right</div> 
</div>
 
<div class="div2">
div2
</div>



原理:IE8以上和非IE浏览器才支持:after,原理和方法2有点类似,zoom(IE转有属性)可解决ie6,ie7浮动问题

优点:浏览器支持好,不容易出现怪问题(目前:大型网站都有使用,如:腾迅,网易,新浪等等)

缺点:代码多,不少初学者不理解原理,要两句代码结合使用,才能让主流浏览器都支持。

建议:推荐使用,建议定义公共类,以减少CSS代码。

评分:★★★★☆

 

4,父级div定义overflow:hidden

 

<style type="text/css"> 
.div1{background:#000080;border:1px solid red;/*解决代码*/width:98%;overflow:hidden}
.div2{background:#800080;border:1px solid red;height:100px;margin-top:10px;width:98%}
 
.left{float:left;width:20%;height:200px;background:#DDD}
.right{float:right;width:30%;height:80px;background:#DDD}
</style> 

 

 

<div class="div1"> 
    <div class="left">Left</div> 
    <div class="right">Right</div>
</div>
 
<div class="div2">
div2
</div>



原理:必须定义width或zoom:1,同时不能定义height,使用overflow:hidden时,浏览器会自动检查浮动区域的高度

优点:简单,代码少,浏览器支持好

缺点:不能和position配合使用,因为超出的尺寸的会被隐藏。

建议:只推荐没有使用position或对overflow:hidden理解比较深的朋友使用。

评分:★★★☆☆

 

5,父级div定义overflow:auto

 

<style type="text/css"> 
.div1{background:#000080;border:1px solid red;/*解决代码*/width:98%;overflow:auto}
.div2{background:#800080;border:1px solid red;height:100px;margin-top:10px;width:98%}
 
.left{float:left;width:20%;height:200px;background:#DDD}
.right{float:right;width:30%;height:80px;background:#DDD}
</style> 



 

<div class="div1"> 
    <div class="left">Left</div> 
    <div class="right">Right</div>
</div>
 
<div class="div2">
div2
</div>



原理:必须定义width或zoom:1,同时不能定义height,使用overflow:auto时,浏览器会自动检查浮动区域的高度

优点:简单,代码少,浏览器支持好

缺点:内部宽高超过父级div时,会出现滚动条。

建议:不推荐使用,如果你需要出现滚动条或者确保你的代码不会出现滚动条就使用吧。

评分:★★☆☆☆

 

6,父级div也一起浮动

 

<style type="text/css"> 
.div1{background:#000080;border:1px solid red;/*解决代码*/width:98%;margin-bottom:10px;float:left}
.div2{background:#800080;border:1px solid red;height:100px;width:98%;/*解决代码*/clear:both}
 
.left{float:left;width:20%;height:200px;background:#DDD}
.right{float:right;width:30%;height:80px;background:#DDD}
</style> 

 

<div class="div1"> 
    <div class="left">Left</div> 
    <div class="right">Right</div>
</div>
 
<div class="div2">
div2
</div>

 

 

原理:所有代码一起浮动,就变成了一个整体

优点:没有优点

缺点:会产生新的浮动问题。

建议:不推荐使用,只作了解。

评分:★☆☆☆☆

 

7,父级div定义display:table

 

<style type="text/css"> 
.div1{background:#000080;border:1px solid red;/*解决代码*/width:98%;display:table;margin-bottom:10px;}
.div2{background:#800080;border:1px solid red;height:100px;width:98%;}
 
.left{float:left;width:20%;height:200px;background:#DDD}
.right{float:right;width:30%;height:80px;background:#DDD}
</style> 



 

 

<div class="div1"> 
    <div class="left">Left</div> 
    <div class="right">Right</div>
</div>
 
<div class="div2">
div2
</div>



 

原理:将div属性变成表格

优点:没有优点

缺点:会产生新的未知问题。

建议:不推荐使用,只作了解。

评分:★☆☆☆☆

 

8,结尾处加br标签clear:both

 

<style type="text/css"> 
.div1{background:#000080;border:1px solid red;margin-bottom:10px;zoom:1}
.div2{background:#800080;border:1px solid red;height:100px}
 
.left{float:left;width:20%;height:200px;background:#DDD}
.right{float:right;width:30%;height:80px;background:#DDD}
 
.clearfloat{clear:both}
</style> 

 

<div class="div1"> 
    <div class="left">Left</div> 
    <div class="right">Right</div>
<br class="clearfloat" />
</div>
 
<div class="div2">
div2
</div>



 

原理:父级div定义zoom:1来解决IE浮动问题,结尾处加br标签clear:both

建议:不推荐使用,只作了解。

评分:★☆☆☆☆

分享到:
评论

相关推荐

    div+css清除浮动

    div+css清除浮动

    css清除浮动的方法有哪些?.docx

    CSS清除浮动是为了应对浮动元素对周围元素布局的影响,特别是防止父元素因子元素浮动而高度塌陷的问题。在Web开发中,有多种方法可以清除浮动,以下将详细介绍四种常见的清除浮动的方法。 一、使用带有`clear`属性...

    xhtml+css清除浮动的3种方法

    ### XHTML + CSS清除浮动的三种方法 在XHTML与CSS页面重构过程中,处理浮动元素是一项关键技术。当元素被设定为浮动后,它们会脱离正常的文档流,并向左或向右移动,直到碰到容器边缘或其他浮动元素。这为布局带来...

    CSS清除浮动_2种方法源代码.zip

    本文将详细讲解两种常见的CSS清除浮动的方法,并通过提供的源代码进行实例解析。 ### 方法一:clearfix类 `clearfix` 类是最常用的清除浮动方法之一,它并不需要添加额外的HTML元素,而是利用CSS伪类来解决。这种...

    css中3种清除浮动方法

    为了解决这个问题,CSS提供了多种清除浮动的方法。本文将详细讲解三种清除浮动的方法。 1. **传统方式:添加额外的 clearing div** 在浮动元素之后,可以添加一个额外的`&lt;div&gt;`并为其设置样式`clear: both;`。这...

    CSS清除浮动_清除float浮动 - DIVCSS5.htm

    具体详细的阐述了css浮动如何解决和浮动产生的原因。

    CSS-清除浮动

    从别人博客看来的,整理成了PPT,分享下吧,感觉挺好懂的

    HTML5 清除浮动

    清除浮动是一个解决CSS布局问题的关键技术,特别是当我们在处理浮动元素时。 在CSS中,浮动(float)属性主要用于创建多列布局或让文本环绕图像。当一个元素被设置为浮动,它会脱离正常的文档流,向左或向右移动,...

    css清除浮动

    ### CSS清除浮动详解 #### 一、引言 在网页设计与前端开发中,CSS(层叠样式表)是用于定义HTML文档外观的关键技术之一。其中,“清除浮动”是一项非常重要的概念,它解决了布局中常见的一个问题——即由于元素...

    浅谈css清除浮动(clearfix和clear)的用法

    本文主要是讲解如何在 html 中使用 clearfix 和 clear,针对那些刚开始了解 css 的童鞋。关于 clearfix 和 clear 的样式在这里我就不写了。 下面就谈谈对于这两个 class 的用法,首先我们先看个例子: XML/HTML Code...

    CSS 清除浮动方法大全

    以下是对几种常见的CSS清除浮动方法的详细解释: 1. **伪类`:after`**: 使用CSS的`:after`伪类可以添加一个看不见的元素来清除浮动。通过设置`content: ""`和`clear: both`,这个看不见的元素将强制父元素扩展以...

    CSS 清除浮动元素方法 整理

    在网页设计中,CSS(层叠样式表)是用于控制网页元素布局和样式的语言。浮动布局是一种常见的CSS技术,它允许元素在页面上左右...然而,在向后兼容性和老式浏览器的支持方面,浮动和清除浮动仍然是一个重要的CSS概念。

    css 清除浮动的新方法

    在上述文件中介绍了一种新的CSS清除浮动方法,这种方法通过伪元素(:after)来清除浮动,避免了额外的HTML标签。具体实现是在浮动元素的父元素上添加一个clearfix类,然后利用CSS的伪元素来清除浮动,伪元素在文档中...

    CSS清除浮动方法大全(小结)

    CSS清除浮动是前端开发中常见的一个问题处理方法,它主要针对的是当子元素使用了浮动(float)属性后,无法自动撑开父元素高度的问题。这是因为浮动元素脱离了标准文档流,父元素无法检测到其高度,从而导致布局问题...

    css常用代码大全(html+css代码).pdf

    `float`用于实现元素的浮动,常用于创建多列布局,`clear`则清除浮动影响,避免内容被浮动元素覆盖。 边框相关属性包括`border-style`定义边框样式,如`none`、`dotted`、`dashed`、`solid`和`double`,`border-...

    CSS技术:清除浮动的最优方法.pdf

    总结来说,清除浮动是CSS布局中非常关键的一个环节,选择合适的方法取决于具体的布局需求和目标浏览器环境。理解各种清除浮动技术的原理和适用场景,可以帮助我们更好地实现复杂的网页设计。随着Web标准的发展,最佳...

    CSS 清除浮动Clear

    当我们提到“CSS 清除浮动Clear”时,我们实际上是在讨论如何解决由于浮动元素导致的布局问题。 在上述例子中,红色方块通过设置`float: left;`使其浮动到左侧,从而允许蓝色方块与其在同一行。这种布局方式在多列...

Global site tag (gtag.js) - Google Analytics