清除浮动的一些方法
浮动的元素不在文档流占据空间,如下图所示,里面的方框分别左右浮动,容器并没有被撑开。IE6除外,但也有需要清除的时候。

我说IE6除外只是因为此框框在IE6表现正常,并没受浮动影响,至于真相是什么,还有待考究。
HTML结构
<div id='container'> <div id='left'>填充文字</div> <div id='right'>填充文字</div> </div>
解决方法
1.添加额外标签
在容器末尾添加<div style=”clear:both”></div>从而将容器撑开,但这样会添加额外的标签。
Demo
2.浮动容器
将容器#container添加float:left,虽然这样能产生想要的效果,但是下一个元素会受到这个浮动元素的影响。
Demo
3.使用overflow属性
应用值为hidden或auto的overflow属性有一个有用的副作用,会自动地清理包含的任何浮动元素。
Demo
4.使用:after伪类(IE6无效)
使用:after在容器末尾添加新的内容并清除内容浮动。
#container{
display: inline-block; /*ie for mac*/
}
#container:after{
content:"."; /*额外的东西越小越好,此处添加一个点*/
display:block; /*这是必须的*/
clear:both; /*这是必须的*/
visibility:hidden; /*隐藏所添加的内容*/
height:0; /*不占用空间*/
}
5.其他
IE6在有些情况下使用以上方法并没有清除浮动,而IE很多奇怪的渲染问题可以通过赋予其“layout”得到解决,或者说触发IE的layout属性,例如添加CSS zoom:1,_height:1%,至于什么是“layout”,我也不太懂,可以搜索一下。
欢迎探讨~
提示: 本文采用 BY-NC-SA 协议进行授权,转载请保留链接。
我什么也不说啊,你们不要逼我啊!!!
overflow:hidden hight:auto zoom:1 不重要的一般这么清了。博客效果都挺不错,就是透明度感觉很压抑啊
再看看留言的效果什么样耳朵//
@mice 呵呵
我喜欢第一种..
我一般会用第三种,不过还会加上zoom:1;不知道是好习惯还是坏习惯。
@西门 我觉得是好习惯,IE6还在
总结的不错:)
@7cbt
留言的动态效果真不错
@小羿 谢谢,咔咔
对于技术的文章我从来都是不懂的……
@deardongdong 呵呵,很基础的东西
只要你是用滴IE6神马神奇的事情都会出现的。。
@Mucid 很是膜拜
恩…其實你的4的code加上5的觀念就是clearfix
4少了一句….
#container {display: inline-block;}上面那個是寫給ie for mac
然後在html的份用if ie獨立控制
#container {zoom: 1;
display: block;
}
關於haslayout其實就是指讓一個元素在瀏覽器裡變得有具體的存在值
ex:一個容器把它加上長寬就是一種最常見的haslayout
所以上面的zoom:1;就是在win for ie 裡開啟你的元素的具體存在值。
然後再用display: block;清掉它的浮動。
這樣智障ie6才看得懂
但zoom這個屬性如果我沒記錯應該是不符合w3c的樣子….所以等於又要寫成js
不過既然都要載js我會比較建議載 http://code.google.com/p/ie7-js/
它是為了配合超天才微軟公司每up一次瀏覽器版本就把遊戲規則重新砍掉重練的壞習慣而寫的
先讓IE的部分統一一點…不然光寫hack就h到天荒地老了
对不起….我忘了转成简体了….
@Kana 原來是更複雜的,謝謝,學習了~繁體我看得懂的所以不用對不起
@Ygs 恩…多碰几次就不复杂了~
对了我後来想到…如果不想用zoom属性其实加上height:1%;理论上也是可以的….不过没有测试过就是了…
@Kana 我測試過了,height:1%是可以滴~
@Ygs 我才刚关掉你的网页…然後….手机的电邮通知就响了起来
手也太快了你 = =b
@Kana 不是手快,只是碰巧我在
@Ygs OK 明白….恩
对了你这是大头贴是用缓存吗??
@Kana 是的,所以你的頭像還沒改變
清除浮动有时候真的很需要,否则就会变形~
学习了,呵呵!
貌似一般第一个和第三个方法用的比较多。IE6太让人火大了。
@SoleilNeon 没错,就是这样
博主也是做前端的吧,看到了那个评论框动画,挺好
@N 呵呵,只是想往这方面发展
浮动有时很麻烦
@zwwooooo 会有莫名其妙的后果
路过打酱油~
@laowi 这里没有哦
CSS只了解,我就不懂装懂吧,呵呵。
@点点 一起装
呵呵来看看你了 不用IE好多年了啊
@Code之行人 虽然不用,但要照顾,呵呵
沙发独一无二哦。。
@飞猪 沙发?哪里的沙发…
。。。这应该算技术活,技术活我一概无视
@恋上秋风 尽情无视吧~
。。。真的连学习都不会了。
博主很高产。最近太忙。都没更新我博客
@forever 不算是高产
@问天 呵呵
我已经对IE6深恶痛绝了,评论嵌套经过万般尝试把IE6杯具了。
话说今天用IE6开了下想看看那V5的杯具页,咋没了呢。。
@奈维摩尔 因为我不够蛋定,放弃了……
@Ygs 本来我还说以你为楷模,我也去弄一个把IE6拒之门外的page。。你。。太让我失望了。。
@奈维摩尔 well~我比较容易动摇,被一个IE6的童鞋说了两遍我就改了
@Ygs 这么不淡定怎么能做旗舰标杆呢?果断改回去,要知道一切IE6使用者都是纸老虎~!
@奈维摩尔 哈哈,没错!
一头雾水