清除浮动的八种武器

1、给浮动元素的父级元素提供高度,问题:高度并不总是固定的

2、给浮动元素的父级元素添加浮动, 问题:如果层级很多,要加很多浮动,很麻烦

3、给浮动元素的父级元素添加overflow属性,问题:在IE6下有兼容性问题

  解决办法:通过_zoom:1  来触发IE6下的haslayout来解决

4、给浮动元素的父级元素添加display:inline-block  ,问题: 高级浏览器的元素居中无效

5、给浮动元素的下方添加<div style="clear:both;"></div>; 曾经的流行方案 

  问题:行为、结构、样式三者没有分离(个人认为问题不大可以采用)

6、给浮动元素的下方添加<br clear="all"></div>;    曾经的流行方案

  问题:行为、结构、样式三者没有分离(个人认为问题不大可以采用)

7、给浮动元素的父级元素添加after伪类(目前主流方式)

  给浮动元素的父级添加clear:

.clear{*zoom:1;}
.clear:after{
      clear:both;
      display:block;
      content:"";
}
8、给浮动元素的父级添加定位:position:absolute/fixed


注意:在IE6、7下,如果浮动元素的父级元素有宽度/高度,则不用清浮动。原因是出发了浏览器的haslayout

haslayout  根据元素的内容,或者父级的大小,重新计算元素的高度。常见的触发条件有:

* display: inline-block
* height: (任何值除了auto)
* float: (left 或 right)
* position: absolute
* width: (任何值除了auto)
* writing-mode: tb-rl
* zoom: (除 normal 外任意值)


  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值