關於內層DIV設置margin-top不起作用的解決方案
代碼如下:
<div>上部層</div>
<div> <!--父層-->
<div style="margin-top:200px;">子層</div>
</div>
理想中的效果是父層和上部層貼邊顯示,子層距離父層頂部有200px的距離,在ie中正常,但是在ff中卻出現問題,子層和父層貼邊了,而父層和上部層卻間隔了200px。
百思不得其解,求助google,得到如下的一句:
當兩個容器嵌套時,如果外層容器和內層容器之間沒有別的元素,firefox會把內層元素的margin-top作用與父元素。
也就是說因為子層是父層的第一個非空子元素,所以使用margin-top會發生這個錯誤。
解決的辦法有兩個:
1、使用浮動來解決,即將子層代碼改為:<div style="margin-top:200px;float:left";>子層</div>
2、使用padding-top來解決,即:
<div style="padding-top:200px;">
<div>子層</div>
</div>