文章

外距(Margin)和內距(Padding)

外距(Margin)和內距(Padding)

在 CSS 盒模型中,外距(Margin)內距(Padding) 是控制元素之間距離和內部間距的重要屬性。它們用於調整元素的外部空間(外距)和內容與邊框之間的內部空間(內距),從而實現更靈活的佈局設計。

1. 外距(margin

外距(Margin) 是元素邊框外部的空白區域,用於調整元素與其他元素之間的距離。margin 可以控制元素的上、右、下、左四個方向的距離。

  • 語法
    1
    
    margin: [] [] [] [];
    
  • 值的設定
    • 單個值:例如 margin: 20px;,四邊的外距都是 20px
    • 兩個值:例如 margin: 10px 20px;,上下外距為 10px,左右外距為 20px
    • 三個值:例如 margin: 5px 10px 15px;,上外距為 5px,左右外距為 10px,下外距為 15px
    • 四個值:例如 margin: 5px 10px 15px 20px;,分別表示上、右、下、左的外距。
  • 自動調整(auto
    • 使用 margin: auto; 可以讓元素在其容器中水平居中,前提是元素有指定寬度。
    • 範例:
      1
      2
      3
      4
      
      .centered {
          width: 50%;
          margin: 0 auto; /* 上下外距為0,左右外距自動平分 */
      }
      

2. 內距(padding

內距(Padding) 是元素內容與邊框之間的空白區域,用於增加內容與邊框之間的距離。padding 屬性可以控制元素的上、右、下、左四個方向的內距。

  • 語法
    1
    
    padding: [] [] [] [];
    
  • 值的設定
    • 單個值:例如 padding: 10px;,四邊的內距都是 10px
    • 兩個值:例如 padding: 5px 10px;,上下內距為 5px,左右內距為 10px
    • 三個值:例如 padding: 5px 10px 15px;,上內距為 5px,左右內距為 10px,下內距為 15px
    • 四個值:例如 padding: 5px 10px 15px 20px;,分別表示上、右、下、左的內距。

3. 單邊外距和內距設置

我們可以單獨設置某一個方向的外距或內距,使用以下屬性:

  • 外距屬性
    • margin-top:設置上外距。
    • margin-right:設置右外距。
    • margin-bottom:設置下外距。
    • margin-left:設置左外距。
  • 範例
    1
    2
    3
    4
    5
    6
    
    .element {
        margin-top: 20px;    /* 設置上外距 */
        margin-right: 10px;  /* 設置右外距 */
        margin-bottom: 15px; /* 設置下外距 */
        margin-left: 5px;    /* 設置左外距 */
    }
    
  • 內距屬性
    • padding-top:設置上內距。
    • padding-right:設置右內距。
    • padding-bottom:設置下內距。
    • padding-left:設置左內距。
  • 範例
    1
    2
    3
    4
    5
    6
    
    .element {
        padding-top: 10px;    /* 設置上內距 */
        padding-right: 5px;   /* 設置右內距 */
        padding-bottom: 20px; /* 設置下內距 */
        padding-left: 15px;   /* 設置左內距 */
    }
    

4. 使用 marginpadding 控制佈局

外距和內距在佈局設計中非常重要,可以用來控制元素間距、文字和內容的內部間距,從而達到更好的排版效果。

  • 外距合併(Margin Collapsing)
    • 當垂直方向(上下)的外距相遇時,外距可能會合併。合併後的外距為兩個外距中的較大值。例如:
      1
      2
      3
      4
      5
      6
      
      h1 {
          margin-bottom: 20px;
      }
      p {
          margin-top: 10px;
      }
      
    • 在此例中,h1 元素的下外距 20pxp 元素的上外距 10px 相遇,最終外距為 20px
  • 使用 padding 創建內部空間
    • 當想要在元素內部創建空白區域來增加內容的可讀性或視覺效果時,可以使用 padding。例如:
      1
      2
      3
      4
      
      .content {
          padding: 20px; /* 為內容創建20像素的內部空白區域 */
          background-color: #f5f5f5;
      }
      

5. marginpadding 的區別

  • 外距(Margin)
    • 控制元素與其他元素之間的距離。
    • 不會影響元素的背景顏色或背景圖片。
    • 可以設置為 auto 來自動調整距離,實現元素居中對齊。
  • 內距(Padding)
    • 控制元素內容與邊框之間的距離。
    • 影響元素的背景顏色和背景圖片,背景會延伸到內距區域。
    • 無法設置為 auto

小結

外距和內距是控制網頁佈局和設計的重要工具。外距用於調整元素之間的距離,內距用於調整元素內部內容與邊框之間的距離。通過正確使用這些屬性,可以創建更清晰、易讀和美觀的網頁設計。

本文章以 CC BY 4.0 授權