大家在制作網(wǎng)頁的過程中有時會遇到div嵌套引起的margin-top不起作用,對內(nèi)部的div設置margin-top時,內(nèi)部對于外部的div并沒有產(chǎn)生一個margin值,而是外部的div相對于上面的div產(chǎn)生了一個margin值,為什么會出現(xiàn)這種情況??
這是因為嵌套div中margin-top出現(xiàn)轉(zhuǎn)移,在部分瀏覽器中,兩個嵌套的div,如果外層父元素div的padding值為0,那么內(nèi)層div的margin-top,margin-bottom值都會轉(zhuǎn)移到父元素也就是外層div身上。
<head> <title></title> <style type="text/css"> * { padding: 0; margin: 0; } .div1 { height: 500px; width: 100%; background: #ccc; } .div2 { height: 100px; width: 100px; background: red; margin-top: 100px; } </style> </head> <body> <div class="div1"> <div class="div2"></div> </div> </body>
由代碼可看出,div1嵌套div2,對div2設置margin-top是100px;
解決辦法:
1. 給父元素div1設置一個padding值
.div1{ height: 500px; width: 100%; background: #ccc; padding-top: 1px; }
2. 給父元素div1設置一個overflow:hidden;在不加overflow:Hidden;的時候,margin-top:這個屬性是認不到邊的,也就是失效。但是ie瀏覽器解決了這個問題,火狐、谷歌之類的就會出現(xiàn)失效,所以這是個標準問題,也是個兼容問題。
.div1{ height: 500px; width: 100%; background: #ccc; overflow: hidden; }