1. 程式人生 > >HTML網頁開發學習筆記(燕十八)-20 margin重疊

HTML網頁開發學習筆記(燕十八)-20 margin重疊

作業:
測試並描述margin重疊的發生條件及現象,並自行搜尋父子div也會發生margin重疊,寫出程式碼和效果圖

總結:
1.上下/左右相鄰的普通元素margin,不是兩者相加之和,而是取最大值,這個現象叫做margin重疊。
2. 普通元素才會發生margin重疊,如果是float元素,就不會發生。margin是兩者相加之和。

margin重疊程式碼:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head
>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>20 margin 重疊現象研究</title> <style> #father{ width:500px; height:500px; background: grey; } .child{ width: 200px; height: 200px; margin: 50px; background
: green
; /*float:left;*/ }
</style> </head> <body> <div id="father"> <div class="child"></div> <div class="child"></div> </div> </body> </html>

執行效果圖如下:
上下相鄰元素margin重疊

float元素不發生margin重疊

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>20 margin 重疊現象研究</title> <style> #father{ width:500px; height:500px; background: grey; } .child{ width: 200px; height: 200px; margin: 50px; background: green; float:left; } </style> </head> <body> <div id="father"> <div class="child"></div> <div class="child"></div> </div> </body> </html>

執行效果圖如下所示:
不重疊

父子divmargin重疊

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    <title>20 margin 重疊現象研究</title>
<style>
    #father{
        width:500px;
        height:500px;
        background: grey;
        margin:100px;
    }
    #child1{
        width: 100px;
        height: 100px;
        background: red;
/*      float:left;*/
        margin:50px;
    }
    #child2{
        width: 100px;
        height: 100px;
        background: green;
        margin:50px;
/*      float:left;*/
    }   
</style>
</head>
<body>
    <div id="father">
        <div id="child1"></div>
        <div id="child2"></div>
    </div>
</body>
</html>

執行結果如圖
這裡寫圖片描述

父子div + float ,不發生margin重疊

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    <title>20 margin 重疊現象研究</title>
<style>
    #father{
        width:500px;
        height:500px;
        background: grey;
        margin:100px;
    }
    #child1{
        width: 100px;
        height: 100px;
        background: red;
        float:left;
        margin:50px;
    }
    #child2{
        width: 100px;
        height: 100px;
        background: green;
        margin:50px;
        float:left;
    }   
</style>
</head>
<body>
    <div id="father">
        <div id="child1"></div>
        <div id="child2"></div>
    </div>
</body>
</html>

如圖:
這裡寫圖片描述