CSS設(shè)置margin-top失效及解決辦法

1、兄弟元素之間margin-top失效
<div> <div class="box1"> float: left div><div class="box2"> clear:both; margin-top:20px; div> div>
網(wǎng)上能找到的兩種比較靠譜的解釋:
2):當(dāng)?shù)谝粋€(gè)層浮動(dòng),而第二個(gè)沒浮動(dòng)層的margin會(huì)被壓縮,詳見--浮動(dòng)元素后非浮動(dòng)元素的margin的處理。
解決辦法:
2)、box1與box2之間增加一層"
2、子元素設(shè)置margin-top作用于父容器
class="box" style="height:100px;background:red;">class="box2" style="clear:both; margin-top:20px; height:50px; width:500px; background:#000;"
解決辦法:
2)、父容器box加border除none以外的屬性
3)、用父容器box的padding-top代替margin-top
當(dāng)兩個(gè)空的塊級(jí)元素嵌套時(shí),如果內(nèi)部的塊設(shè)置有margin-top屬性,而且父元素沒有下邊解決方法所述的特征,那么內(nèi)部塊的margin-top屬性會(huì)綁架父元素(即將margin-top傳遞凌駕給了父元素)。
2)、設(shè)置父元素的border:1px aqua solid;(>0)
3)、設(shè)置父元素的padding:1px;(>0)
4)、給父元素設(shè)置overflow:hidden;
5)、給父元素或者自身設(shè)置position:absolute;
6)、設(shè)置父元素非空,填充一定的內(nèi)容。?
hasLayout 會(huì)影響一個(gè)盒子和其子孫的邊距重疊。根據(jù)規(guī)范,一個(gè)盒子如果沒有上補(bǔ)白和上邊框,那么它的上邊距應(yīng)該和其文檔流中的第一個(gè)孩子元素的上邊距重疊。

