文章

盒模型(Box Model)

盒模型(Box Model)

CSS 的盒模型是網頁設計中的核心概念之一,它定義了每個 HTML 元素在網頁上所佔據的空間和顯示方式。理解盒模型可以幫助我們更好地控制元素的大小、邊距、填充、邊框等特性,以實現更精確的佈局設計。

1. 盒模型結構

盒模型由四個主要部分組成,從內到外分別是:

  1. 內容(Content):元素的實際內容,例如文字、圖片或其他子元素。
  2. 內邊距(Padding):內容和邊框之間的空白區域,用於增加內容周圍的空間。
  3. 邊框(Border):圍繞元素內容和內邊距的邊框,可以設置顏色、樣式和寬度。
  4. 外邊距(Margin):元素邊框外的空白區域,用於設置元素與其他元素之間的距離。

盒模型

2. 內容區域(widthheight

widthheight 屬性用於設置元素的內容區域的寬度和高度,不包括內邊距、邊框和外邊距。

  • 語法
    1
    2
    
    width: 長度;
    height: 長度;
    
  • 範例
    1
    2
    3
    4
    
    div {
        width: 200px;  /* 設置寬度為200像素 */
        height: 150px; /* 設置高度為150像素 */
    }
    

3. 內邊距(padding

padding 屬性用於設置元素內容與邊框之間的內部空白區域。可以為所有四個方向(上、右、下、左)設置相同的內邊距,也可以為每個方向設置不同的內邊距。

  • 語法
    1
    
    padding:    ;
    
  • 範例
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    .box {
        padding: 10px; /* 四邊內邊距皆為10像素 */
    }
    .box2 {
        padding: 10px 20px; /* 上下內邊距為10像素,左右內邊距為20像素 */
    }
    .box3 {
        padding: 10px 15px 20px 25px; /* 上、右、下、左內邊距依次為10、15、20、25像素 */
    }
    

4. 邊框(border

border 屬性用於設置元素的邊框,可以設定邊框的寬度、樣式和顏色。

  • 語法
    1
    
    border: [寬度] [樣式] [顏色];
    
  • 範例
    1
    2
    3
    
    .box {
        border: 2px solid #333; /* 寬度2像素的實線邊框,顏色為深灰色 */
    }
    
  • 邊框樣式值solid(實線)、dashed(虛線)、dotted(點線)、double(雙線)等。

5. 外邊距(margin

margin 屬性用於設置元素的外部空白區域,用於調整元素與其他元素之間的距離。

  • 語法
    1
    
    margin:    ;
    
  • 範例
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    .container {
        margin: 20px; /* 四邊外邊距皆為20像素 */
    }
    .container2 {
        margin: 10px 5px; /* 上下外邊距為10像素,左右外邊距為5像素 */
    }
    .container3 {
        margin: 5px 10px 15px 20px; /* 上、右、下、左外邊距依次為5、10、15、20像素 */
    }
    

6. 簡寫屬性(paddingmargin

  • padding 簡寫
    • padding: 10px; — 四邊內邊距都為10px。
    • padding: 10px 20px; — 上下為10px,左右為20px。
    • padding: 10px 20px 30px; — 上為10px,左右為20px,下為30px。
    • padding: 10px 20px 30px 40px; — 上、右、下、左分別為10px、20px、30px、40px。
  • margin 簡寫
    • padding 類似的簡寫方式。

7. 設置盒模型的計算方式(box-sizing

box-sizing 屬性用於指定元素的寬度和高度是否包括內邊距和邊框。這個屬性有兩個值:

  • content-box(預設):寬度和高度不包括內邊距和邊框,僅包含內容。
  • border-box:寬度和高度包括內邊距和邊框。

  • 語法
    1
    
    box-sizing: content-box | border-box;
    
  • 範例
    1
    2
    3
    4
    5
    6
    
    .element {
        width: 300px;
        padding: 10px;
        border: 5px solid #000;
        box-sizing: border-box; /* 寬度包含內邊距和邊框 */
    }
    

8. 小結

CSS 的盒模型提供了一個靈活的框架,用於理解和控制元素在網頁佈局中的行為。掌握盒模型的概念可以幫助我們有效地設計和調整元素的佈局,解決常見的排版和間距問題,提升網頁的整體設計品質。

本文章以 CC BY 4.0 授權