HTML 學習筆記 CSS樣式(外邊框 外邊框合並)


CSS外邊距

圍繞在元素邊框的空白區域就是外邊距  設置外邊距會在元素外創建額外的空白

設置外邊距的最簡單的方法就是使用 margin 屬性,這個屬性接受任何長度單位、百分數值甚至負值。


 

CSS margin 屬性

margin 屬性 接受任何長度單位 可以是像素 英寸 毫米 或者 em

margin 可以設置為auto 更常見的做法是為外邊距設置長度值 下面的聲明在h1元素的各個邊上設置了1/4英寸的空白

h1 {
     margin:0.25in  
}

下面的例子為h1元素的思辨分別設置了不同的外邊距 所使用的長度均為像素px

h1 {margin : 10px 0px 15px 5px;}

與內邊距的設置相同,這些值的順序是從上外邊距 (top) 開始圍着元素順時針旋轉的: 上 右 下 左

值復致

有時候 我們會復制一些重復的值

p {margin: 0.5em 1em 0.5em 1em;}

通過值復制 我們可以寫成下面的格式

p {margin: 0.5em 1em;}

 

上圖就是值復制的一些原則

換句話說,如果為外邊距指定了 3 個值,則第 4 個值(即左外邊距)會從第 2 個值(右外邊距)復制得到。如果給定了兩個值,第 4 個值會從第 2 個值復制得到,第 3 個值(下外邊距)會從第 1 個值(上外邊距)復制得到。最后一個情況,如果只給定一個值,那么其他 3 個外邊距都由這個值(上外邊距)復制得到。
利用這個簡單的機制,您只需指定必要的值,而不必全部都應用 4 個值,例如:

h1 {margin: 0.25em 1em 0.5em;}    /* 等價於 0.25em 1em 0.5em 1em */
h2 {margin: 0.5em 1em;}        /* 等價於 0.5em 1em 0.5em 1em */
p {margin: 1px;}            /* 等價於 1px 1px 1px 1px */

單邊外邊距屬性

您可以使用下列任何一個屬性來只設置相應上的外邊距,而不會直接影響所有其他外邊距:
margin-top
margin-right
margin-bottom
margin-left

h2 {
  margin-top: 20px;
  margin-right: 30px;
  margin-bottom: 30px;
  margin-left: 20px;
  }

例子

<html>
    <head>
        <meta charset="UTF-8">
        <title>鏈接</title>
        <style type="text/css">
        *{
            margin: 0px;
        }
            p.leftmargin {
                margin-left:2cm;
            }
        </style>
    </head>
    <body>
        <p>這個段落沒有指定外邊距</p>
        <p class="leftmargin">這個段落帶有指定的左外邊距</p>
    </body>
</html>

CSS 外邊框屬性

 


CSS外邊距合並

外邊距合並指的是,當兩個垂直外邊距相遇時,它們將形成一個外邊距。
合並后的外邊距的高度等於兩個發生合並的外邊距的高度中的較大者。


外邊距合並

外邊距合並是相當簡單的概念 但是在實踐中對網頁進行布局的時候 他會造成許多混淆

簡單的說 外邊距合並指的是 當兩個垂直外邊距相遇時 他們將形成一個外邊距 合並后的外邊距的高度等於兩個發生合並的外邊距的高度中的較大者

當一個元素出現在另一個元素上面時 第一個元素的下邊距與第二個元素的上邊距發生合並 請看下圖:

 

 當一個元素包含在另一個元素中時(假設沒有內邊距 或者邊框把外邊距分隔開)他們的上和 下邊距也會發生合並

外邊距甚至可以與自身發生合並。

假設有一個空元素,它有外邊距,但是沒有邊框或填充。在這種情況下,上外邊距與下外邊距就碰到了一起,它們會發生合並:

如果這個外邊距遇到另一個元素的外邊距,它還會發生合並:

外邊距合並初看上去可能有點奇怪,但是實際上,它是有意義的。以由幾個段落組成的典型文本頁面為例。第一個段落上面的空間等於段落的上外邊距。如果沒有外邊距合並,后續所有段落之間的外邊距都將是相鄰上外邊距和下外邊距的和。這意味着段落之間的空間是頁面頂部的兩倍。如果發生外邊距合並,段落之間的上外邊距和下外邊距就合並在一起,這樣各處的距離就一致了。

總結:(塌陷現象)

在標准文檔流中 豎直方向的margin不疊加 以較大的為准 

在標准文檔流中 水平方向的margin會有疊加現象

以上只在標准文檔流中出現,沒有在標准中沒有上述現象(塌陷現象)

盒子居中

margin: 0 auto

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style type="text/css">
        * {
            margin: 0;
            padding: 0;
        }
        div {
            width: 100px;
            height: 100px;
            background-color: blue;
            /* 在右邊 */
            /* margin-left: auto; */
            /* 在左邊 */
            /* margin-right: auto; */
            /* 在中間 */
            margin:0 auto;
        }
    </style>
</head>
<body>
    <div></div>
</body>
</html>

注意:

1.使用margin:0 auto 使盒子居中的時候,盒子必須有明確的width

2.只有標准流的盒子 才能使用margin:0 auto 居中 也就是說當一個盒子浮動了 絕對定位 或者相對定位了 不能使用此方法居中

3. 此方法是使盒子居中,並不是文字居中 使用text-align使文字居中

善於使用父親的padding而不是兒子的margin

margin 表達的是兄弟之間的距離 父子之間的距離不用margin表示 而是用padding

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        * {
            padding: 0;
            margin: 0;
        }
        div {
            width: 100px;
            height: 100px;
            background-color: yellow;
            padding: 50px 50px;
            /* border: 1px solid red; */
        }

        p {
            /* 如果Div不加邊框 會使div向下移動50像素 即把div拉下來 加了邊框會是正常現象 */
            /* 所以我們為了如果要讓兒子在父親內有上下左右邊框 可以使用父親的padding屬性 而不是兒子的margin屬性 */
            /* margin-top: 50px; */
            width: 100px;
            height: 100px;
            background-color: green;

        }
    </style>
</head>
<body>
    <div>
        <p></p>
    </div>
</body>
</html>

現象

只寫p 的margin-top

p的margin 加div的邊框

利用div的 padding實現

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



猜您在找 CSS外邊框、邊界樣式常用組合 通過css樣式去除 css細節復習筆記——內邊距、邊框和外邊距 CSS實現無外邊框列表效果 css樣式表-margin 外邊距/border 邊框/border-radius 圓角/padding 邊框 css盒模型。邊框和內外邊距 css中的margin(外邊框)、border(邊框)、padding(填充)的區別 css:盒子模型邊框(邊框、內外邊距) CSS中input輸入框點擊時去掉外邊框方法【outline:medium;】----CSS學習
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM
標簽的外邊框 CSS之表格邊框合並、兄弟標簽外邊距合並、父子標簽的外邊距合並