HTML 標題用來標示網頁及章節的題目,協助讀者了解內容的組織方式,也讓輔助技術可以按標題導覽網頁。
HTML 提供六個標題層級:
<h1>主要標題</h1>
<h2>章節標題</h2>
<h3>子章節標題</h3>
<h4>第四層標題</h4>
<h5>第五層標題</h5>
<h6>第六層標題</h6>應按內容層級選擇標題元素,而不是按想要的字體大小選擇。
3.1 標題的意義
| 元素 | 一般用途 |
|---|---|
<h1> | 網頁的主要標題 |
<h2> | 主要章節 |
<h3> | <h2> 章節內的子章節 |
<h4> | <h3> 章節內的子章節 |
<h5> | 更深入的細分章節 |
<h6> | 可用的最深標題層級 |
例如:
<h1>香港旅遊指南</h1>
<h2>交通</h2>
<h3>鐵路服務</h3>
<h3>渡輪服務</h3>
<h2>遊覽地點</h2>
<h3>博物館</h3>
<h3>郊野公園</h3>「交通」和「遊覽地點」是同一層級的章節,各自的子章節使用 <h3>。
你不需要使用全部六個層級。
3.2 標題不只是較大的文字
這是一個標題:
<h2>課程要求</h2>以下則是外觀像標題的段落:
<p style="font-size: 1.5rem; font-weight: bold;">
課程要求
</p>兩者可能看起來相似,但段落不會提供原生的標題語意。
同樣地,<strong> 表示內容的重要性,不會將文字變成標題。
應使用:
- HTML 表達結構。
- CSS 控制外觀。
3.3 建立清晰的標題層級
實用的做法是先將網頁規劃成大綱:
網頁標題
├── 關於課程
├── 課程內容
│ ├── HTML 基礎
│ └── 實習練習
└── 報名
再將大綱轉換成標題層級:
<h1>網頁開發入門</h1>
<h2>關於課程</h2>
<h2>課程內容</h2>
<h3>HTML 基礎</h3>
<h3>實習練習</h3>
<h2>報名</h2>避免不必要地跳過層級
較不清晰:
<h1>課程指南</h1>
<h3>入讀要求</h3>較好的做法:
<h1>課程指南</h1>
<h2>入讀要求</h2>跳過層級本身不一定是語法錯誤,但可能令內容結構較難理解。
由子章節返回較高層級的章節是正常的:
<h2>課程內容</h2>
<h3>HTML 基礎</h3>
<h3>CSS 基礎</h3>
<h2>報名</h2>最後的 <h2> 表示開始另一個主要章節。
3.4 應使用多少個 <h1>?
對一般網頁而言,以一個清晰的 <h1> 標示主要內容,是實用的預設做法。
<h1>HTML 入門課程</h1>不要只為了讓多個標題顯得較大,就使用多個 <h1>。
HTML 並沒有適用於所有文件情況的「必須剛好有一個 <h1>」通用規則。不過,明確而一致的層級通常更容易維護和導覽。
章節不會自動重設標題層級
不要假設將 <h1> 放在 <section> 內,它就會變成第二層標題:
<h1>課程指南</h1>
<section>
<h1>課程內容</h1>
</section>輔助技術一般仍會將這兩個標題識別為第一層標題。
應明確使用合適的層級:
<h1>課程指南</h1>
<section>
<h2>課程內容</h2>
</section>3.5 標題與無障礙使用
許多螢幕閱讀器讓使用者可以:
- 列出網頁上的標題。
- 跳至下一個或上一個標題。
- 按標題層級導覽。
清晰的標題能讓這些功能更有用。
具描述性的標題:
<h2>申請截止日期</h2>資訊較少的標題:
<h2>更多資訊</h2>第二個標題在某些情況下可能合適,但具描述性的標題通常更能清楚表達章節用途。
使用原生標題元素
優先使用:
<h2>聯絡資料</h2>而不是:
<div role="heading" aria-level="2">聯絡資料</div>有需要時,ARIA 可以提供標題語意,但原生 HTML 更簡單,也不需要另行設定標題層級屬性。
不要為一般 <h1> 至 <h6> 元素加入多餘的 role="heading" 或 aria-level。
3.6 標題與文件名稱
<title> 和 <h1> 有關聯,但用途不同:
<head>
<title>HTML 入門課程 | 香港學習中心</title>
</head>
<body>
<h1>HTML 入門課程</h1>
</body>| 元素 | 用途 |
|---|---|
<title> | 設定文件名稱,通常顯示在瀏覽器分頁上 |
<h1> | 在網頁內提供可見的主要標題 |
兩者可以使用相似文字,但不必完全相同。
標題有助於表達內容結構,但增加標題數量或重複關鍵字,不會保證改善搜尋排名。
3.7 標題的語言設定
標題會繼承包含它的元素所設定的語言。
香港英文
<html lang="en-HK">這份文件內的標題一般會繼承英文設定:
<h1>Welcome to Our Learning Centre</h1>中文標題可以另行指定語言:
<h2 lang="zh-Hant-HK">課程內容</h2>雙語標題
<h1>
Course Guide
<span lang="zh-Hant-HK">課程指南</span>
</h1>在主要語言為英文的文件中,這仍是一個包含兩種語言文字的標題。
一般英文可使用 lang="en",香港語境的英文可使用 lang="en-HK",香港繁體中文則可使用 lang="zh-Hant-HK"。
標題層級不會因語言而改變。
3.8 使用 CSS 設定標題外觀
你可以改變標題外觀,而不改變它的語意層級:
<h2 class="section-heading">課程內容</h2>.section-heading {
color: #005ea8;
font-size: 1.75rem;
line-height: 1.3;
margin-block-start: 2rem;
margin-block-end: 0.75rem;
}外觀看起來較小的 <h1>,仍然是第一層標題。外觀看起來較大的 <h3>,仍然是第三層標題。
避免設定固定高度,以免標題換行或使用者放大文字時,內容被裁切。
3.9 連結至標題
使用 id 可以將標題設為頁內連結的目的地:
<a href="#entry-requirements">跳至入讀要求</a>
<h2 id="entry-requirements">入讀要求</h2>
<p>不需要具備網頁開發經驗。</p>片段識別碼 #entry-requirements 指向具有該 id 的元素。
請注意:
- 每個
id必須在同一文件內保持唯一。 - 使用有意義的連結文字。
- 片段連結通常會捲動至目的地,但不要假設所有瀏覽器都會以相同方式移動鍵盤焦點。
3.10 完整範例:課程網頁
以下中文版範例使用一個主要標題、兩個主要章節標題,以及兩個子章節標題。
主要語言設定為香港繁體中文。CSS 控制外觀,但不改變標題層級。
id: hong-kong-html-headings
name: 標題 — 香港課程指南
type: html
content: |-
<!doctype html>
<html lang="zh-Hant-HK">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>HTML 入門課程 | 香港學習中心</title>
<style>
* {
box-sizing: border-box;
}
body {
margin: 0;
color: #222;
background: #f5f7fa;
font-family: system-ui, sans-serif;
line-height: 1.8;
}
main {
max-width: 46rem;
margin-inline: auto;
padding: 2rem 1rem;
}
h1,
h2,
h3 {
color: #005ea8;
line-height: 1.4;
overflow-wrap: anywhere;
}
h1 {
font-size: 2.25rem;
margin-block: 0 1rem;
}
h2 {
font-size: 1.75rem;
margin-block: 0 1rem;
}
h3 {
font-size: 1.25rem;
margin-block: 1.5rem 0.5rem;
}
section {
margin-block: 1.5rem;
padding: 1.25rem;
border: 1px solid #767676;
border-radius: 0.5rem;
background: white;
}
a {
color: #005ea8;
text-underline-offset: 0.2em;
}
:focus-visible {
outline: 3px solid #005ea8;
outline-offset: 4px;
}
.welcome {
padding: 1rem;
border-inline-start: 4px solid #005ea8;
background: #eaf2f8;
}
</style>
</head>
<body>
<main>
<h1>HTML 入門課程</h1>
<p>開始學習如何建立結構清晰、無障礙的網頁。</p>
<p class="welcome" lang="en-HK">
Welcome to the HTML beginner course.
</p>
<nav aria-label="本頁目錄">
<ul>
<li><a href="#course-content">課程內容</a></li>
<li><a href="#entry-requirements">入讀要求</a></li>
</ul>
</nav>
<section>
<h2 id="course-content">課程內容</h2>
<p>本課程介紹 HTML 的基礎知識。</p>
<h3>文件結構</h3>
<p>
認識文件類型宣告、文件語言、
中繼資料及主體內容。
</p>
<h3>標題與段落</h3>
<p>
使用有意義的標題及清晰的段落,
有條理地組織資訊。
</p>
</section>
<section>
<h2 id="entry-requirements">入讀要求</h2>
<p>不需要具備網頁開發經驗。</p>
<ul>
<li>基本電腦操作能力</li>
<li>純文字或程式碼編輯器</li>
<li>現代網頁瀏覽器</li>
</ul>
</section>
</main>
</body>
</html>標題大綱如下:
h1:HTML 入門課程
├── h2:課程內容
│ ├── h3:文件結構
│ └── h3:標題與段落
└── h2:入讀要求
導覽區的標籤用來為導覽區命名,不是額外的標題。
3.11 常見錯誤
| 錯誤 | 較好的做法 |
|---|---|
| 按字體大小選擇標題層級 | 按結構選擇層級,再使用 CSS 設定外觀 |
| 用加粗段落代替章節標題 | 使用原生標題元素 |
| 沒有結構上的理由便跳過層級 | 保持清晰的層級 |
假設 <section> 會重設標題層級 | 明確設定正確層級 |
| 將每一行短文字都設為標題 | 只用標題標示網頁及章節題目 |
| 留下空白標題 | 提供有意義的標題文字 |
| 將一個標題放在另一個標題內 | 將標題元素分開 |
將標題放在 <p> 內 | 先結束段落,再加入標題 |
多個標題重複使用同一個 id | 為每個連結目的地設定唯一的 id |
將 <title> 當作可見的網頁主標題 | 在 <body> 內加入合適的標題 |
本章總結: 標題表達網頁的內容結構。按內容層級使用 <h1> 至 <h6>,撰寫具描述性的標題文字,並以 CSS 控制外觀,而不是為了外觀改變語意層級。















