# Day 57:CSS Box Model 與偽元素、偽類 **Published by:** [雞蛋糕的前端修煉屋](https://paragraph.com/@gcake/) **Published on:** 2026-02-10 **URL:** https://paragraph.com/@gcake/day-57 ## Content 學習情境: 在檢視結訓學員的程式碼時,發現他們的切版作業採用了 box-sizing: border-box,但我目前的作業還沒有使用這個設定。透過這次筆記深入理解 Box Model、偽元素、偽類的運作原理與最佳實踐。一、問題發現:我的作業與學員程式碼的差異我目前的 CSS 狀態/* 我的作業沒有這段設定 */ header { border: 5px solid black; /* 使用預設的 content-box */ } footer { border: 5px solid black; padding: 30px; /* 實際寬度會超出設定值 */ } 學員程式碼的常見寫法/* 學員作業開頭有這段 */ * { box-sizing: border-box; } /* 搜尋後發現還有另外一種常用的包含三個選擇器的設定 */ *, *::before, *::after { box-sizing: border-box; } 發現問題:為什麼大家都用這個設定?這三個選擇器分別是什麼意思?二、Box Model 基礎概念Content-box vs Border-boxContent-box (CSS 預設值): developer.mozilla實際佔據寬度 = width + padding-left + padding-right + border-left + border-right Border-box (現代推薦): developer.mozilla實際佔據寬度 = width (已包含 padding 和 border) 內容區域寬度 = width - padding - border CodePen 實驗:兩種模型對比
width: 200px
padding: 20px
border: 5px
width: 200px
padding: 20px
border: 5px
ZERO TYPE
Don't worry it's for free.
這是卡片內容
這是卡片內容
2005 年的網站設計師寫了這段 CSS:
總寬度 = 350px
總寬度 = 300px