首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

HTML 標籤嵌套規則完整指南:塊級/行內元素、HTML5 內容模型、特殊限制

     編輯:Java 綜合教學

HTML 標籤嵌套規則完整指南:塊級/行內元素、HTML5 內容模型、特殊限制

傳統分類:塊級 vs 行內元素

類別標籤範例特點功能
塊級元素div, h1-h6, p, ul/ol/li, table, form, header, footer, section, article獨佔一行、可設寬高/邊距、預設寬度 100%頁面骨架、佈局容器、承載內容
行內元素span, a, strong, em, img, input, label, b, i, u, br不換行、不可設寬高/垂直邊距、寬度由內容決定文本修飾、細節控制、表單控件

嵌套三大鐵律

  1. 同類並列:塊級與塊級同層、行內與行內同層
    <div><span></span><a></a></div>  <!-- 正確:行內並列 -->
    <div><span></span><p></p></div>  <!-- 錯誤:行內包塊級 -->
  2. 塊級可包行內,行內不可包塊級
    <div><span></span></div>  <!-- 正確 -->
    <span><div></div></span>  <!-- 錯誤 -->
  3. 特殊塊級元素僅能包行內:h1-h6, p, dt 不能包含其他塊級元素
    <p><div></div></p>  <-- 錯誤:瀏覽器會自動修正為 <p></p><div></div>

額外規則

  • li 可包 div (兩者皆為容器)
  • 固定嵌套:ul>li、ol>li、dl>dt/dd、table>tr>td、select>option

HTML5 內容模型 (替代塊級/行內分類)

HTML5 依內容語義分類,不再單純看 display:

類別描述典型標籤
Metadata (元數據)文檔關係、行為配置base, link, meta, noscript, script, style, title
Flow (文檔流)主體內容大部分元素div, p, h1-h6, ul, table, form, header, footer...
Sectioning (區塊)定義標題/頁腳範圍article, aside, nav, section
Heading (標題)區塊標題h1-h6, hgroup
Phrasing (語句)段落級文本標記span, a, strong, em, img, input, br...
Embedded (內嵌)引入外部資源audio, video, img, canvas, iframe, svg
Interactive (交互)用戶交互a, button, details, embed, iframe, label, select, textarea

HTML5 內容模型分類圖

常用標籤嵌套限制速查 (HTML5)

父標籤允許的子內容類別禁止嵌套
h1-h6, pPhrasingFlow、Sectioning、Heading、Interactive
header, footerFlow (但不可嵌套 header/footer)header, footer
aTransparent (繼承父元素允許類別)Interactive (不可嵌套 a、button 等)
formFlowform (不可巢狀 form)
buttonPhrasingInteractive
captionFlowtable
dt, thFlowheader, footer, Sectioning, Heading

最佳實踐建議

  • 語義化優先:用 <article>、<section>、<nav> 替代無意義 <div>
  • CSS 控制佈局:display: block/inline-block/flex/grid 可改變視覺行為,但不改變內容模型限制
  • 驗證工具:W3C Validator、瀏覽器開發者工具 Console 警告
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved