清除浮动的常用方法

先说不清除浮动的效果:

给父元素这只边框都不会把他们包裹起来,俗称高度塌陷。

然后说说几个不常用的清除浮动方法,比如:

<div style="overflow:hidden">
    <div style="float:left;"></div>
    <div style="float:left;"></div>
</div>

就是给父元素设置overflow属性的那种,具体样式就不写了;

还有这种:

<div style="">
    <div style="float:left;"></div>
    <div style="float:left;"></div>
    <div style="clear:both"></div>
</div>

这种的是在浮动元素最后加一个空的div然后给他清楚浮动,这个原理就是让它左右两边都不挨着浮动元素,所以他就钻到父元素的最下边了,但是还是在父元素内,所以就把父元素给撑起来了。不会塌陷。效果如下:

还有:

<div style="float:left;">
    <div style="float:left;"></div>
    <div style="float:left;"></div>
</div>

给父元素也加浮动,这种方式是极不好的,会影响父元素的定位

还有一种极不好的,是给设置父元素的display属性为table。这个table属性的元素布局的时候坑太多了,所以这种清除浮动的方式是极不推荐的。

最后被大家所广泛采用的一种方式是:

    <style>
        .box{
            width:400px;
            border:red solid 1px;
        }
        .clearfix{
            *zoom:1;
        }
        .clearfix:after{
            display:block;
            content:"";
            clear:both;
        }
        .one{
            width:100px;
            height:100px;
            background-color:yellow;
            margin:5px;
            float:left;
        }
    </style>
    <div class="box clearfix">
        <div class="one">one</div>
        <div class="one">two</div>
        <div class="one">three</div>
    </div>

用after伪类在box父元素内的最后添加一个子元素,每个dom元素都必须有display和content属性,所以要写上:

.clearfix:after{
            display:block;
            content:"";
            clear:both;
        }

注意display属性不可以写inline,因为inline撑不起父元素。

然后,ie6、7不支持伪类:after,所以我们在

    .clearfix{
        *zoom:1;
    }

设置了zoom属性,使用来触发ie67的haslayout属性来支持:after伪类,haslayout是关于ie低版本浏览器排版的一个属性。

时间: 2024-10-31 17:33:55

清除浮动的常用方法的相关文章

CSS定位机制:浮动 float及清除浮动的常用方法

CSS的定位机制 1.普通流(标准流) 默认状态,元素自动从左往右,从上往下排列 块元素的特征: 独占一行 可以设置宽高 如果不设置宽度,宽度默认为容器的100% 常见的块元素:div p h1-h6 ul ol li dl dt d 行内元素的特征: 与其他元素同行显示 不可以设置宽和高 宽和高就是文字或图片的宽高 常见的行内元素:span a b i u em 2.浮动 浮动基础 会使元素向左或向右移动,只能左右,不能上下 浮动元素碰到包含框或另一个浮动框,浮动停止 浮动元素之后的元素将围绕

CSS清除浮动常用方法小结

使用div+css布局的好处不用多说,经常性地会使用到float,那么清除浮动就是必须要做的,而且随时性地对父级元素清除浮动的做法也被认为是书写CSS的良好习惯之一. 常用的清除浮动的方法有以下三种.      此为未清除浮动源代码,运行代码无法查看到父级元素浅黄色背景. <style type="text/css"> <!-- *{margin:0;padding:0;} body{font:36px bold; color:#F00; text-align:cen

清除浮动的几种常用方法小结

在web的应用中浮动不是什么好东西,但是在学习生活中,却不可或缺,今天就清除浮动的方法做个小结. 1)添加额外标签 在浮动元素末尾添加一个空的标签例如 <div style=”clear:both”></div>,其他标签br等亦可. <div class="warp" id="float"> <h2>1)添加额外标签</h2> <div class="main left">

overflow:hidden清除浮动原理解析及清除浮动常用方法总结

最近在看<CSS Mastery>这本书,里面有用overflow:hidden来清理浮动的方法.但是一直想不明白为什么能够实现清除浮动,查阅了网络上的解释,下面来总结一下. 一.首先来想想 我们大家理解的overflow:hidden是超出该元素的部分进行隐藏.这个时候就需要明确一点,该元素的高度是怎么定义的.当一个div中的两个元素浮动之后,此时div的高度就会塌陷,此时div的高度为0.那是不是意味着就要将浮动元素隐藏起来,如果是真的隐藏就是反布局常识的.所以这中间肯定有我们现在还不知道

CSS清除浮动常用方法小结 CSS clear both {overflow:auto;zoom:1;}

常用的清除浮动的方法有以下三种: 此为未清除浮动源代码,运行代码无法查看到父级元素浅黄色背景 <!DOCTYPE html><html><head> <meta charset="utf-8"/> <title></title> <style type="text/css"> * { margin: 0; padding: 0; } body { font: 36px bold; c

清除浮动的的常用方法

第一种:在末尾处添加新的元素,应用clear:both <style> .div1,div2,div3{ float:left; width:200px; height:100px; } div1{backgroud:red;} div2{background:green;} div3{background:yelllow;} .clear{ clear:both;height: 0; line-height: 0; font-size: 0 } </style> <div

css清除浮动的五种常用方法

父级div定义固定高度height 结尾处加空div标签 clear:both <style type="text/css"> ... /*清除浮动代码*/ .clearfloat{clear:both} </style> <div class="box"> <div class="float-left">Left</div> <div class="float-righ

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

css技巧:清除浮动

1.常用方法——overflow 给浮动元素的容器添加overflow:hidden;或overflow:auto;可以清除浮动,另外在 IE6 中还需要触发 hasLayout ,例如为父元素设置容器宽高或设置 zoom:1. 不过不能和position配合使用,因为超出的尺寸的会被隐藏. overflow:auto会在内部宽度超过父元素时出现滚动条. 在添加overflow属性后,浮动元素又回到了容器层,把容器高度撑起,达到了清理浮动的效果. 2.终极方法——伪元素 如果遇到水平排列列表需要