<div class=\"testcss\">
<h1>
<p>tttttttttt</p>
</h1>
</div>
| 選擇器 | 匹配條件 | 本例是否生效 |
|---|---|---|
要求結構:.testcss → div → h1 → p(四層嚴格父子鏈) | ❌ 失敗 — 實際無中間 div | |
要求結構:.testcss → h1 → p(三層) | ✅ 生效 — 完全吻合 | |
要求:.testcss 任意層級後代 p | ✅ 生效 — 最簡潔、彈性最大 |
>(如 .testcss > h1 > p),但本例 h1 下直含 p 合法性存疑(HTML 標準 h1 不允許包含 p,瀏覽器會自動修正 DOM 結構)。.testcss p 或語意化類名 .testcss .content-text。.testcss__paragraph)解耦樣式與結構。<h1><p>...</p></h1> 違反 HTML 內容模型(標題元素僅允許 phrasing content)。瀏覽器會將 p 提升為 h1 同級,導致實際 DOM 變為:
<div class=\"testcss\">
<h1></h1>
<p>tttttttttt</p>
</div>
此時 .testcss h1 p 反而**不生效**,而 .testcss p 依然有效。語意化標籤正確使用才是 CSS 穩健的前提。