常用的清除浮动的方法有以下三种:
此为未清除浮动源代码,运行代码无法查看到父级元素浅黄色背景。
<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;}
#right{float:right;width:30%;height:80px;background:#DDD;line-height:80px;}
–>
</style>
<div id=”layout”>
<div id=”left”>Left</div>
<div id=”right”>Right</div>
</div>
未清除浮动前如图所示:
三种清除浮动方法如下:
1、使用空标签清除浮动。
我用了很久的一种方法,空标签可以是div标签,也可以是P标签。我习惯
用<P>,够简短,也有很多人用<hr>,只是需要另外为其清除边框,但理论上可以是任何标签。这种方式是在需要清除浮动的父级
元素内部的所有浮动元素后添加这样一个标签清除浮动,并为其定义CSS代码:clear:both。此方法的弊端在于增加了无意义的结构元素。
ps:<br clear=”all”/>也可以实现效果,但不清楚使用哪个比较好。呵呵
<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;}
#right{float:right;width:30%;height:80px;background:#DDD;line-height:80px;}
.clr{clear:both;}
–>
</style>
<div id=”layout”>
<div id=”left”>Left</div>
<div id=”right”>Right</div>
<p class=”clr”>
</p>
</div>
2、使用overflow属性。
此方法有效地解决了通过空标签元素清除浮动而不得不增加无意代码的弊端。使用该方法是只需在需要清除浮动的元素中定义CSS属性:overflow:auto,即可!”zoom:1″用于兼容IE6。
<style type=”text/css”>
<!–
*{margin:0;padding:0;}
body{font:36px bold; color:#F00; text-align:center;}
#layout{background:#FF9;overflow:auto;zoom:1;
}
#left{float:left;width:20%;height:200px;background:#DDD;line-height:200px;}
#right{float:right;width:30%;height:80px;background:#DDD;line-height:80px;}
–>
</style>
<div id=”layout”>
<div id=”left”>Left</div>
<div id=”right”>Right</div>
</div>
3、使用after伪对象清除浮动。
该方法只适用于非IE浏览器
。
具体写法可参照以下示例。使用中需注意以下几点。一、该方法中必须为需要清除浮动元素的伪对象中设置height:0,否则该元素会比实际高出若干像素;
二、content属性是必须的,但其值可以为空,蓝色理想讨论该方法的时候content属性的值设为”.”,但我发现为空亦是可以的。
<style type=”text/css”>
<!–
*{margin:0;padding:0;}
body{font:36px bold; color:#F00; text-align:center;}
#layout{background:#FF9;}
#layout:after{display:block;clear:both;content:”";visibility:hidden;height:0;}
#left{float:left;width:20%;height:200px;background:#DDD;line-height:200px;}
#right{float:right;width:30%;height:80px;background:#DDD;line-height:80px;}
–>
</style>
<div id=”layout”>
<div id=”left”>Left</div>
<div id=”right”>Right</div>
</div>
清除浮动后如图所示:
此三种方法各有利弊,使用时应择优选择,比较之下第二种方法更为可取。
分享到:
相关推荐
### XHTML + CSS清除浮动的三种方法 在XHTML与CSS页面重构过程中,处理浮动元素是一项关键技术。当元素被设定为浮动后,它们会脱离正常的文档流,并向左或向右移动,直到碰到容器边缘或其他浮动元素。这为布局带来...
这种方法是让浮动元素后面的元素自身具备清除浮动的特性,通过添加`clear:both`属性实现。例如,将`.content{clear:both;}`应用于浮动元素之后的元素。优点是无需添加额外元素,但可能会对布局产生其他影响,因为此...
这种方法是最简单的清除浮动方式之一,只需要在浮动元素后面添加一个空的`<p>`标签或者`<div>`标签,并应用`clear:both;`样式即可。 **示例代码**: ```html .clr { clear: both; } <div id="left">Left ...
方法1: #test{clear:both;} #test为浮动元素的下一个兄弟元素 方法2: #test{display:block;zoom:1;overflow:hidden;} #test为浮动元素的父元素。zoom:1也可以替换为固定的width或height 方法3: #test{zoom:1;}...
在CSS中,浮动是一种常用的设计方式,它可以让元素脱离正常的文档流,实现复杂的布局结构。然而,浮动带来的副作用之一是其可能导致父元素的高度塌陷,即父元素无法包含浮动的子元素,这会影响到布局的整体表现。...
为了解决这个问题,我们可以使用CSS的`overflow`属性来清除浮动,而无需依赖传统的`clear:both`方法。 `overflow`属性在CSS中主要用于控制内容溢出元素边界时的行为。当设置为`overflow:auto`或`overflow:hidden`时...
本文将详细探讨三种常用的CSS清除浮动方法。 【标签】:CSS布局,浮动,清除浮动 【正文】: 在CSS布局中,浮动(float)属性常用于创建多列布局或使元素在文本中环绕。然而,当子元素全部浮动后,父元素可能会...
原理:添加一个空div,利用css提高的clear:both清除浮动,让父级div能自动获取到高度。优点:简单,代码少,浏览器支持好,不容易出现怪问题。缺点:不少初学者不理解原理;如果页面浮动布局多,就要增加很多空div,...
另一种常用的清除浮动方法是通过设置容器的`overflow`属性为`hidden`或`auto`。这种方法不需要额外的HTML标记,而且兼容性良好,但在某些老版本的IE浏览器中可能需要加上`*zoom:1`来触发“hasLayout”,以确保正确...
这种方法是在浮动元素之后添加一个额外的空元素,比如`<div class="clear"></div>`,然后在CSS中设置`.clear`的`clear`属性为`both`。这样新元素会强制其下方的内容不再围绕浮动元素,从而解决浮动塌陷。同时,为了...
3. **设置`overflow`属性**:给包含浮动元素的容器设置`overflow: auto`,这将使容器自动扩展以包含浮动元素,从而避免内容溢出。这种方法简单有效,但可能会影响到滚动条的显示。 4. **使用`:after`伪元素和...
另外,文中还提到了一种名为`clearfix`的清除浮动方法,它利用CSS伪元素`:after`和`clear:both`来创建一个看不见的元素来清除浮动,这种方法适用于不支持`overflow`属性清除浮动的旧版本浏览器。 总的来说,`...
2. 利用overflow属性:给浮动元素的父容器设置`overflow:hidden`或`overflow:auto`属性,可以强制父容器包含浮动元素。这种方法不需要添加额外的HTML元素,但可能会引起副作用,比如内容被剪裁。 3. 使用伪元素清除...
以下是一些常用的CSS清除浮动的方法。 首先,是使用伪类和zoom属性的方法。这种方法在IE8及以上版本以及其他非IE浏览器中都能够得到支持。其原理是通过在父元素的伪类中设置.clearfix:after,利用CSS的content属性...
为了解决这个问题,我们需要使用“清除浮动”(clear floats)的方法。以下介绍几种常见的CSS清除浮动的方法: 1. 使用`clear`属性: 这是最基础的清除浮动方式。通过设置`clear`属性,我们可以指定元素不允许与...
通过设置`overflow:hidden`或`overflow:auto`,可以强制父元素包裹其内容,从而清除浮动。在IE6中,为了触发hasLayout,还需要加上`*zoom: 1`。例如: ```css .news { overflow: hidden; *zoom: 1; } ``` ```html ...
本文将详细介绍七种常见的CSS清除浮动的方法,并讨论它们的兼容性处理。 1. **添加空div法** 这是最原始的清除浮动方式,通过在浮动元素后面添加一个空的div,并设置`clear:both;height:0;overflow:hidden;`。这种...