WeHelp
掌握基礎的 HTML、CSS 觀念、語法、和切版技巧,初步建立網頁介面的開發能力。
  1. HTML 快速開始
  2. HTML 常用標籤
  3. HTML 標籤排列方式
  4. CSS 快速開始
  5. CSS 區塊模型
  6. CSS 選擇器
  7. CSS 樣式檔案
  8. DIV、SPAN 標籤
  9. Flexbox 切版技巧
  10. Grid 切版技巧
CSS 區塊模型
## CSS Box Model(區塊模型)簡介 在 CSS 中,每個 HTML 元素都可以視為一個矩形盒子,稱為 **Box Model**。由內到外依序包含: 1. **Content(內容區)**:文字、圖片等實際內容。 2. **Padding(內距)**:內容與邊框之間的空間。 3. **Border(邊框)**:包住內容與內距的線條。 4. **Margin(外距)**:元素與其他元素之間的距離。 結構如下: ```text ┌────────────── Margin ──────────────┐ │ ┌──────────── Border ───────────┐ │ │ │ ┌──────── Padding ─────────┐ │ │ │ │ │ Content │ │ │ │ │ └──────────────────────────┘ │ │ │ └─────────────────────────────────┘ │ └──────────────────────────────────────┘ ``` --- ## 使用 Inline CSS 的範例 以下直接在 HTML 元素的 `style` 屬性中設定 CSS: ```html <div style=" width: 300px; height: 100px; padding: 20px; border: 5px solid #3498db; margin: 30px; background-color: #eaf6ff; " > 這是一個使用 Box Model 的區塊 </div> ``` 此元素包含: - `width: 300px`:內容區寬度 - `height: 100px`:內容區高度 - `padding: 20px`:內容四周的內距 - `border: 5px solid #3498db`:5 像素藍色實線邊框 - `margin: 30px`:與其他元素保持 30 像素距離 - `background-color`:背景色通常會延伸到內容區與內距區 --- ## 常見 Box Model 屬性 ### 1. `width` 與 `height` 設定元素的寬度與高度: ```html <div style="width: 250px; height: 120px; background-color: lightgray;"> 固定寬高的區塊 </div> ``` 預設情況下,`width` 和 `height` 指的是 **Content 區域**,不包含 padding 和 border。 --- ### 2. `padding`:內距 設定內容與邊框之間的距離: ```html <div style="padding: 20px; background-color: #fff3cd;"> 四個方向都是 20px </div> ``` 也可以分別設定四個方向: ```html <div style=" padding-top: 10px; padding-right: 20px; padding-bottom: 30px; padding-left: 40px; background-color: #d1ecf1; " > 上、右、下、左的內距不同 </div> ``` 縮寫方式: ```html <div style="padding: 10px 20px 30px 40px;"> 順序為:上、右、下、左 </div> ``` 常見縮寫規則: ```css padding: 10px; /* 四邊都是 10px */ padding: 10px 20px; /* 上下 10px,左右 20px */ padding: 10px 20px 30px; /* 上 10px,左右 20px,下 30px */ padding: 10px 20px 30px 40px; /* 上右下左 */ ``` --- ### 3. `border`:邊框 設定邊框的寬度、樣式與顏色: ```html <div style="border: 2px solid black;"> 黑色實線邊框 </div> ``` 常見邊框樣式包括: ```html <div style="border: 3px dashed red; margin: 10px;"> 紅色虛線邊框 </div> <div style="border: 3px dotted green; margin: 10px;"> 綠色點線邊框 </div> <div style="border: 3px double purple; margin: 10px;"> 紫色雙線邊框 </div> ``` 也可以只設定單一方向: ```html <div style="border-bottom: 2px solid #333;"> 只有底部有邊框 </div> ``` --- ### 4. `margin`:外距 設定元素與其他元素之間的距離: ```html <div style="margin: 20px; background-color: #f8d7da;"> 四周都是 20px 外距 </div> ``` 分別設定方向: ```html <div style="margin-top: 10px; margin-bottom: 30px;"> 上方 10px,下方 30px </div> ``` 使用 `auto` 置中: ```html <div style=" width: 300px; margin: 20px auto; padding: 15px; background-color: #d4edda; " > 寬度固定,左右自動置中 </div> ``` > `margin: 20px auto` 表示上下外距為 20px,左右外距由瀏覽器自動分配。 --- ## `box-sizing`:控制寬高計算方式 ### 預設:`content-box` ```html <div style=" box-sizing: content-box; width: 200px; padding: 20px; border: 5px solid black; " > 實際寬度為 250px </div> ``` 實際寬度為: ```text 200px(內容) + 20px × 2(左右 padding) + 5px × 2(左右 border) = 250px ``` ### 常用:`border-box` ```html <div style=" box-sizing: border-box; width: 200px; padding: 20px; border: 5px solid black; " > 實際寬度固定為 200px </div> ``` 使用 `border-box` 時,`width` 會包含: ```text 內容區 + padding + border ``` 因此在實務開發中常見以下設定: ```html <div style=" box-sizing: border-box; width: 300px; padding: 20px; border: 2px solid #333; " > 寬度容易控制的區塊 </div> ``` --- ## 其他常見相關屬性 ### `border-radius`:圓角 ```html <div style=" padding: 20px; border: 1px solid #ccc; border-radius: 10px; " > 圓角區塊 </div> ``` ### `overflow`:內容超出時的處理方式 ```html <div style=" width: 200px; height: 80px; overflow: auto; border: 1px solid black; " > 這是一段較長的內容,當內容超過指定寬高時,可以使用捲軸查看剩餘內容。 </div> ``` 常見值: - `visible`:預設,超出內容仍顯示 - `hidden`:隱藏超出的內容 - `scroll`:顯示捲軸 - `auto`:需要時才顯示捲軸 --- ## 完整 Inline CSS 範例 ```html <div style=" box-sizing: border-box; width: 320px; padding: 24px; margin: 30px auto; border: 2px solid #2980b9; border-radius: 12px; background-color: #ecf6ff; color: #2c3e50; overflow: auto; " > <h2 style="margin: 0 0 12px 0;">Box Model 範例</h2> <p style="margin: 0; line-height: 1.6;"> 這個區塊使用了寬度、內距、外距、邊框、圓角與 box-sizing 等常見 CSS 屬性。 </p> </div> ``` 重點是:元素的實際尺寸不只受到 `width` 和 `height` 影響,也要考慮 `padding`、`border` 與 `margin`。若希望寬高計算較直覺,通常會使用: ```html <div style="box-sizing: border-box;"> ... </div> ```
相關學習地圖、教學課程
F2E 網站前端工程
從 0 開始,成為網站前端工程師的學習路徑。