大家在制作網(wǎng)頁(yè)的過(guò)程中有時(shí)會(huì)遇到div嵌套引起的margin-top不起作用,對(duì)內(nèi)部的div設(shè)置margin-top時(shí),內(nèi)部對(duì)于外部的div并沒(méi)有產(chǎn)生一個(gè)margin值,而是外部的div相對(duì)于上面的div產(chǎn)生了一個(gè)margin值,為什么會(huì)出現(xiàn)這種情況??
這是因?yàn)榍短譫iv中margin-top出現(xiàn)轉(zhuǎn)移,在部分瀏覽器中,兩個(gè)嵌套的div,如果外層父元素div的padding值為0,那么內(nèi)層div的margin-top,margin-bottom值都會(huì)轉(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,對(duì)div2設(shè)置margin-top是100px;
解決辦法:
1. 給父元素div1設(shè)置一個(gè)padding值
.div1{ height: 500px; width: 100%; background: #ccc; padding-top: 1px; }
2. 給父元素div1設(shè)置一個(gè)overflow:hidden;在不加overflow:Hidden;的時(shí)候,margin-top:這個(gè)屬性是認(rèn)不到邊的,也就是失效。但是ie瀏覽器解決了這個(gè)問(wèn)題,火狐、谷歌之類(lèi)的就會(huì)出現(xiàn)失效,所以這是個(gè)標(biāo)準(zhǔn)問(wèn)題,也是個(gè)兼容問(wèn)題。
.div1{ height: 500px; width: 100%; background: #ccc; overflow: hidden; }