|
為了解決浮動元素引起父元素無法獲得高度的問題,我們一般在子元素的最后加上一個Spacer Div(clear:both)。但是IE和Mozilla對div的解釋不同引起一些表現(xiàn)上的差異。 最簡單的Spacer: .HackBox{clear:both;}
IE可以正確地產生預期的效果,但是在Mozilla中不起作用。所以現(xiàn)在很多人是這么用的 .HackBox{ height:0; clear:both;}
然后XHTML中加入一個 ;,如下: <div class="HackBox"> </div>
這回IE和Mozilla都起作用了,但是IE并不認 height:0; 這個規(guī)則,結果IE中的這個Spacer Div就占了一定的高度,影響布局。 經過N次實驗,我發(fā)現(xiàn)用下面的方法能比較完美的解決這個問題。 .HackBox{
其實IE只需要有clear:both;這一條就可以實現(xiàn)我們的要求。那么下面這兩條規(guī)則有什么用呢? border-top:1px solid transparent;
第一條規(guī)則產生1px的一個透明的上邊框,第二條將margin-top設置為-1,以抵消這條邊框對布局產生的影響。 但是不幸的是IE不支持transparent這個值,它會將這條邊框變?yōu)楹谏?_- 不幸中的萬幸是IE這小子還有一個不支持的值,就是!important,IE會忽略這它而選擇按后面兩條顯示,結果就是不顯示邊框(也就是只有clear:both;起作用了)。而Mozilla卻會按!important指出的規(guī)則顯示。 由此,一個相對完美的Spacer Div就產生了^_^ |
|
|