Div 佈局的本質是**將設計圖轉化為語義化、層次分明的 HTML 結構**。沒有固定規則說「必須嵌套」或「必須獨立」,關鍵在於**視覺區塊的包含關係**與**樣式複用需求**。
#wrapper 或 .container)實現頁面居中。觀察設計圖,自上而下識別主要行區塊:
對應 HTML 結構:
<div id="wrapper">
<header><nav>...</nav></header> <!-- 第一行 -->
<div class="banner">...</div> <!-- 第二行 -->
<main class="content">...</main> <!-- 第三行 -->
</div>
針對「第三行內容區」,進一步分析其內部佈局:
<main class="content">
<div class="row row-1"> <!-- 第一行:三列 -->
<div class="col">...</div>
<div class="col">...</div>
<div class="col">...</div>
</div>
<div class="row row-2"> <!-- 第二行:三列 -->
<div class="col">...</div>
<div class="col">...</div>
<div class="col">...</div>
</div>
</main>
決策依據:
section)。使用 CSS Flexbox 或 Grid 可大幅減少無語義的嵌套層:
.content { display: grid; grid-template-rows: repeat(2, auto); gap: 20px; }
.row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
甚至可完全移除 .row,直接在 .content 定義 2x3 網格,語義更純粹。
<div><div><div>...</div></div></div>),維護困難。header、main、section、article、aside 就不用 div。**「大塊不嵌套,小塊按網格嵌套,語義標籤優先,現代 CSS 減層」** —— 這是從設計圖到優質結構的通用思維路徑。多練習「先畫樹,再寫碼」,佈局能力自會質變。