Menu

HTML 标题:h1 到 h6、字号、顺序与样式

HTML 有六个标题级别,从 <h1> 到 <h6>,它们构成页面的大纲。学习默认字号、标题的排列顺序、应该用几个 h1 标签、如何用 CSS 修改字号,以及屏幕阅读器如何使用标题。

本页包含可运行的编辑器。编辑、运行,立即查看输出。

六个 HTML 标题标签

HTML 有六个标题级别,从 <h1> 到 <h6>。<h1> 是最高级别(页面的标题),<h6> 是最低级别。浏览器把每一级显示得比上一级小,全部加粗,各自独占一行:

标签默认字号正文 16px 时
<h1>2em32px
<h2>1.5em24px
<h3>1.17em18.72px
<h4>1em16px
<h5>0.83em13.28px
<h6>0.67em10.72px

<h5> 和 <h6> 默认比正文还小,这常常让人意外。字号只是默认值,下面几节会说明为什么永远不该按字号来选择级别。

标题就是页面大纲

标题不是装饰。它们合在一起构成页面的大纲,就像一本书的目录。屏幕阅读器用户在标题之间跳转来找到想要的内容,搜索引擎也通过标题来理解页面上的主题。

规则很简单:页面标题用一个 <h1>,每个主要区块用 <h2>,<h2> 里的子区块用 <h3>,依此类推,不要跳级。下面的示例根据标题生成一份目录,和辅助工具看到的一样:

把第二个 <h3> 改成 <h5>,大纲就会出现断层:靠标题浏览的读者会疑惑 h4 去哪儿了。

修改标题的字号

先按在大纲中的位置选择级别,再用 CSS 设置外观。侧边栏的标题可能需要是 <h2>,但看起来很小;首屏大标题可能是一个非常大的 <h1>:

反过来也一样:不要只为了让文字变大或加粗就使用标题标签。句子中的加粗词语用 <strong>,不是标题的大号文字用带 class 的 <p>。文本标签参见加粗。

副标题和标语

紧跟在标题下面的副标题通常本身不是标题:它并不开启一个新的区块。请用段落,如果愿意,可以用 <hgroup> 把两者组合起来:

大纲保持清晰(一个 h1,然后是几个 h2 区块),而标语在视觉上仍然和标题放在一起。

链接到标题

给标题一个 id,任何 href 中带 #id 的链接都能直接跳转到它。目录和“复制区块链接”按钮就是这样实现的:

常见错误

  • 按字号选择级别。 按在大纲中的位置来选,再用 CSS 设置样式。
  • 跳级。 从 <h2> 直接跳到 <h4> 会破坏屏幕阅读器用户的浏览。
  • 用标题来强调。 段落中加粗的一句话应该用 <strong>,而不是 <h4>。
  • 没有 <h1>,或者唯一的 <h1> 是标志。 <h1> 应该说明页面内容,比如文章或商品的标题。
  • 空标题。 只有图标或什么都没有的标题会被朗读为空白。在里面写上真正的文字。

常见问题

HTML 中有几个标题标签?

六个:<h1>、<h2>、<h3>、<h4>、<h5> 和 <h6>。<h1> 最重要(页面标题),<h6> 最不重要。没有 <h7>;这样的标签会被当作未知的行内元素。

HTML 标题的默认字号是多少?

在默认 16px 正文字号下,浏览器把 h1 渲染为 32px(2em),h2 为 24px(1.5em),h3 为 18.72px(1.17em),h4 为 16px(1em),h5 为 13.28px(0.83em),h6 为 10.72px(0.67em),全部加粗。

一个页面可以有多个 h1 吗?

HTML 允许这样做,但用一个 <h1> 为页面命名,对屏幕阅读器用户和搜索引擎来说结构最清晰。它下面的主要区块用 <h2>。

可以跳过标题级别吗,比如从 h2 直接到 h4?

尽量不要。屏幕阅读器用户按标题级别浏览,从 h2 跳到 h4 会让人以为漏了一个区块。按在大纲中的位置选择级别,再用 CSS 修改字号。

怎样修改标题的字号?

在 CSS 中设置 font-size,例如 h2 { font-size: 20px; },或者给某一个标题加一个 class。永远不要因为默认字号而去选择标题级别。

Coddy 编程语言插图

和 Coddy 一起学编程

开始