CSS中的margin是指元素與周圍元素之間的間距,在網(wǎng)頁布局中起到非常重要的作用。同時(shí),CSS中還有一個(gè)非常有趣的現(xiàn)象,即margin傳遞。所謂margin傳遞,是指當(dāng)兩個(gè)元素發(fā)生重疊時(shí),它們的margin不是簡單相加,而是取兩者中較大的那個(gè)值。
.box1 { width: 200px; height: 200px; margin: 100px; background-color: red; } .box2 { width: 150px; height: 150px; margin: 50px; background-color: blue; }
在上面的代碼中,.box1和.box2形成了重疊的效果。根據(jù)我們對margin傳遞的了解,它們的margin應(yīng)該是取兩者中較大的那個(gè)值,即100px。因此,.box2并沒有增加整個(gè)重疊區(qū)域的margin。
需要注意的是,margin傳遞只發(fā)生在border邊界內(nèi)的元素之間。如果兩個(gè)元素的border相遇,則margin傳遞不再起作用。
.box1 { width: 200px; height: 200px; margin: 100px; border: 10px solid black; background-color: red; } .box2 { width: 150px; height: 150px; margin: 50px; background-color: blue; }
上面的代碼中,因?yàn)?box1有border,所以.box2的margin傳遞沒有起作用。此時(shí),.box2的margin會簡單地和.box1的border重疊。
綜上所述,margin傳遞是CSS布局中的一個(gè)有趣現(xiàn)象。當(dāng)元素發(fā)生重疊時(shí),我們可以使用margin傳遞來控制它們之間的間距。但是需要注意的是,邊界內(nèi)的元素才會參與到margin傳遞中。
上一篇css marking
下一篇css3圖片方法縮小動畫