常用的清除浮动的方法有以下三种:
此为未清除浮动源代码,运行代码无法查看到父级元素浅黄色背景。
<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,即可!overflow:auto;是让高度自适应, zoom:1;是为了兼容IE6,也可以用height:1%;的方式来解决,注意,zoom不符合W3C标准.
<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.
<style type=”text/css”>
<!–
*{margin:0;padding:0;}
body{font:36px bold; color:#F00; text-align:center;}
#layout{background:#FF9;dispaly:inline_block;width:100%}
#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>
清除浮动一个凡是做页面的人都会遇到的一个东西,但是是否大家都能够清楚的知道,全方位的了解呢?于是一闲下来了马上写了这样的一篇文章,不能讲面面俱到,然而基本能将我所知道的倾囊相授了。
我们粗略的一起来看看清除浮动的办法一共有多少个(IE里面用zoom:1就不写了,下一个专题再写)。
1. 采用伪类:after进行后续空制的高度位零的伪类层清除
2. 采用CSS overflow:auto的方式撑高
3. 采用CSS overflow:hidden的方式产生怪异适应
4. 采用display:table将对象变成table形式
5. 采用div标签,以及css的clear属性
粗略的看,他们都能将问题解决;然而他们另外一方面又有着各自的利弊。(一一对应)
1. 优点结构语义化完全正确,不会产生其余的怪异问题。
缺点复用方式不当容易造成代码量急剧增大。
建议最外层轻浮动时使用,或清晰模块化复用方式的人使用。
2. 优点结构语义化完全正确,代码量极少。
缺点多个嵌套后,点击最外层的轻浮动框会遭成最外层至最内层内容全选(FF);或者在mouseover造成宽度改变时会出现最外层模块有滚动条(IE)。
建议内个模块使用,请勿嵌套。
3. 优点结构语义化完全正确,代码量极少。
缺点内容增多时候极易不会自动换行而内容被隐藏掉。
建议宽度固定时使用,请勿嵌套。
4. 优点结构语义化完全正确,代码量极少。
缺点盒模型属性已经改变,可想而知奇异事件自然多得你数都数不到。
建议如果你不想改Bug改死你的话,最好不要使用;不过可以作为alpha版本当中临时性的忽悠下测试。
5. 优点代码量极少,复用性极高。
缺点完全不能完美的适应语义化,不利于改版以及需求变更。
建议初学者使用,可以让你快速的解决浮动问题。
分享到:
相关推荐
css中3种清除浮动方法css中3种清除浮动方法
浮动的原理 ,介绍清除浮动几种方法。以及margin塌陷的产生和解决margin的塌陷的方法
清除浮动的几种方法.md
做xhtml+css页面重构的人员很注重的一点就是浮动,而浮动最头痛的就是如何清除。文件是我整理的3种清除浮动的方法,3种方法各有优缺点,页面重构师需要结合使用
下面总结8种清除浮动的方法(测试已通过 ie chrome firefox opera,后面三种方法只做了解就可以了): 1,父级div定义 height 复制代码代码如下: <style type=”text/css”> .div1{background
如何清除浮动?css清除浮动的方法有很多,下面为大家介绍下常用的3种,需要的朋友可以了解下
4、 回答,如何清除浮动以及常用的几种方法 5、 结论,得出本文认为最好用的方法 三、 正文 1、 浮动本来的意义 浮动的意义原本仅是用来让文字环绕在图片周围而已。 通过上图可以看到,设置图片左浮动可以将图片从...
css清除浮动的方法有哪些?.docx
清除CSS浮动 CSS清除浮动_2种方法源代码.zip
清除浮动的几种方法PPT学习教案.pptx
浮动的属性虽然方便使用,但是在使用这种属性时,也存在着一种弊端,那就是当子元素设置了float属性之后,且父元素的宽度没有设置,而是由子元素支撑起来,则会导致父元素的高度塌陷(原本的height后来被置为0)。...
浮动的属性虽然方便使用,但是在使用这种属性时,也存在着一种弊端,那就是当子元素设置了float属性之后,且父元素的宽度没有设置,而是由子元素支撑起来,则会导致父元素的高度塌陷(原本的height后来被置为0)。...
DIV+CSS 清除浮动是页面布局中常见的问题,相信各位高手也都有自己的方法,今天在这里对常见的几种方法进行总结(PS:谈不上是原创,这里是我自己做的归纳总结,也是我自己内化的过程),希望对您能够有所帮助。...
COME-IN FROM 导航条字体加粗 清除浮动 minyout 4.390v.
在清除浮动前我们要了解两个重要的定义: 浮动的定义:使元素脱离文档流,按照指定方向发生移动,遇到父级边界或者相邻的浮动元素停了...具体清楚浮动的方法主要一下几种: 1、clear清除浮动(添加空div法) 在浮动元素
NULL 博文链接:https://onestopweb.iteye.com/blog/2316146
CSS技术:清除浮动的最优方法.pdf
这个资源为前端开发布局中浮动布局的浮动清除常见方法,
主要为大家详细介绍了CSS清除浮动的常用方法优缺点,分析很全面,感兴趣的小伙伴们可以参考一下