DIV+CSS 清除浮动

来源:互联网 发布:乐视视频mac客户端 编辑:程序博客网 时间:2024/05/29 03:24

DIV+CSS 浮动效果是指,父元素在未定义高的情况下,由于子元素全部浮动脱离文本流,而造成父元素高的塌陷(PS:正常情况下,父元素的高是由子元素撑起来);或者因为部分子元素的而浮动,脱离文本流而造成其他元素的布局错乱的情况。


1、给未加浮动的子元素的CSS添加 clear: both;若子元素都有浮动时,可以新增加一个空的子元素,并且给其的CSS添加 clear: both;这样可以利用清除左右浮动的子元素重新撑起父元素的高,从而达到清除浮动的效果

<style type="text/css">    
.fl{float:left;}    
.demo{background:#ccc;}    
.item1{background:#F571E3;height:100px;width:100px;}    
.item2{background:#21B2F7;height:200px;width:100px;clear: both;}    
</style>    
</head>    
<body>    
    <h2>用 clearfix 清除浮动</h2>    
    <div class="demo">    
        <div class="fl item1"></div>    
        <div class="item2"></div>    
    </div>    
</body>


2、子元素全部浮动时,给父元素的CSS添加 overflow: hidden;

<style type="text/css">    
.fl{float:left;}    
.demo{background:#ccc;overflow: hidden;}    
.item1{background:#F571E3;height:100px;width:100px;}    
.item2{background:#21B2F7;height:200px;width:100px;}    
</style>    
</head>    
<body>    
    <div class="demo">    
        <div class="fl item1"></div>    
        <div class="fl item2"></div>    
    </div>    
</body> 

3. 给父元素加 伪类:after 和 zoom

<style type="text/css">    
.fl{float:left;}    
.demo{background:#ccc;zoom: 1;}    
.demo:after{display:block;clear:both;content:"";visibility:hidden;height:0}   
.item1{background:#F571E3;height:100px;width:100px;}    
.item2{background:#21B2F7;height:200px;width:100px;}    
</style>    
</head>    
<body>    
    <div class="demo">    
        <div class="fl item1"></div>    
        <div class="fl item2"></div>    
    </div>    
</body>  

0 0