三人行必有我师焉,择其善者而从之,其不善者而改之
三人行必有我师焉,择其善者而从之,其不善者而改之
三人行必有我师焉,择其善者而从之,其不善者而改之
三人行必有我师焉,择其善者而从之,其不善者而改之
三人行必有我师焉,择其善者而从之,其不善者而改之

关于浮动与浮动清理
作者:Neoxone    发表时间: 2008年12月5号,星期五     阅读:2,355 次

浮动不清理会导致很多问题。(当然,有时候,这种问题就是我们要的效果。)

容器不扩展问题,这是浮动导致的众多问题中的一个哈。
这个问题相对于其他常规的由浮动引起的文档流的改变还是有区别的。
我一向不大同意float元素“脱离文档流”的之说,而比较认可“改变文档流”的说法。脱离文档流(如position:absolute)会导致外容器不扩展这 其实很正常。但改变文档流会引起外容器不扩展这个问题,我就会当成bug来看待了。

清除浮动,不仅能恢复被改变的文档流,也能修复这个bug。不多提了。

关于清除浮动,我一向用教材里学的clear方法。有些人,分不清什么时候clear:left;什么时候用clear:right;而一mein地在空标签中使用clear:both.  其实,前面有float:left;要清的话,就用clear:left;有right就对应用right。
最近老是接触到overflow:hidde;这种清除浮动的方法。但由于不明白原理,一直是束之高阁。今天初探一番:
要说overflow:hidden;能请浮动的话,overflow:auto;也未尝不可啊。ie7,ff下试了一番,全部都通过。
只是ie6下不行。这时候,想起haslayout那东西,里面提到,overflow: hidden|scroll|auto能让ie7触发layout,但之前的ie版本却不行。而另外 zoom: 除 “normal” 外的任意值都能在各个版本中触发。
这样用overflow:hidden;zoom:1这么一套双保险,就能适用全部浏览器的浮动清除了。

只是还是不明白overflow这东西为何能适应于ff等其他浏览器中的浮动清除呢(zoom:1这个值适用于ie,这是明显的)。毕竟haslayout这东西只存在于ie啊。
看来,还待深入研究啊。

标签:

留下回复

):9:( ):8:( ):7:( ):6:( ):5:( ):4:( ):3:( ):2:( ):20:( ):1:( ):19:( ):18:( ):17:( ):16:( ):15:( ):14:( ):13:( ):12:( ):11:( ):10:(