4.5 标记重要或强调的文本
strong
元素表示重要的文本,而em
则表示强调。根据内容需要,这两个元素既可以单独使用,也可以一起使用,参见图4.5.1和图4.5.2。
- ...
- <body>
- <p><strong>Warning: Do not approach the zombies <em>under any circumstances</em>. </strong> They may <em>look</em> friendly, but that's just because they want to eat your arm.</p>
- </body>
- </html>
图4.5.1 第一个句子既有strong
又有em
,而第二个句子只有em
。如果将under any circumstances
改为under any circumstances
,它的重要程度会比strong包含的文本更高
- 标记重要文本
输入
。
输入想标记为重要内容的文本。
输入
。
- 强调文本
输入
。
输入想强调的文本。
输入
。
图4.5.2 浏览器通常将strong
文本以粗体显示,将em
文本以斜体显示。如果em
是strong
的子元素(如图4.5.1中第一个句子),文本将同时以斜体和粗体显示
提示 不要使用
b
元素代替strong
,也不要使用i
元素代替em
。尽管它们在浏览器中显示的样式是一样的,但它们的含义却很不一样(参见本节末尾“HTML5中重新定义的b
和i
元素”)。
提示 可以在标记为
strong
的短语中再嵌套strong
文本。如果这样做,作为另一个strong
的子元素的strong
文本的重要程度都会递增。这种规则对嵌套在另一个em
里的em
文本也适用。例如,在语句中,due by November 17th要比其他
Remember that entries are due by November 17th.
strong
文本更为重要。
提示 可以用CSS将任何文本变为粗体或斜体,也可以覆盖
strong
和em
等元素的浏览器默认样式,参见图4.5.2。更多细节参见10.3节和10.4节。
HTML5中重新定义的
b
和i
元素HTML5强调元素的语义,而非表现。
b
和i
元素是早期HTML遗留下来的产物,它们分别用于将文本变为粗体和斜体(那时CSS还未出现)。HTML 4和XHTML 1当然抛弃了它们,因为它们本质上是用于表现的。当时的规范建议编码人员用strong
替代b
,用em
替代i
。不过,事实证明,em
和strong
并不总是在语义上合适。为此,HTML5重新定义了b
和i
。传统出版业里的某些排版规则在现有的HTML语义还找不到对应物,其中就包括用斜体表示某些科学名称(如马萨诸塞州州树Ulmus americana)、具体的交通工具名称(如Orient Express)及外来语(如joie de vivre)。这些词语不是为了强调而加上斜体的,只是样式上的惯例。
为了应对这些情况,HTML5没有创建一些新的语义化元素(进一步把事情搞复杂),而是采取了一种很实际的做法,直接利用现有元素:
em
用于所有层次的强调,strong
用于表示重要性,而b
和i
则用于其他的情况。这意味着,尽管
b
和i
并不包含任何明显的语义,但读者仍能发现它们与周边文字的差别。而且你还可以通过CSS改变它们粗体或斜体的样式。HTML5强调,b
和i
应该是其他元素(如strong
、em
、cite
等)都不适用时的最后选择。
b
元素简介HTML5将
b
重新定义为:
b
元素表示出于实用的目的提醒读者注意的一块文字,不传达任何额外的重要性,也不表示其他的语态和语气,用于如文档摘要里的关键词、评论里的产品名、基于文本的交互式软件中指示操作的文字、文章导语等。例如:
- <p>The <b>XR-5</b>, also dubbed the <b>Extreme Robot 5</b>, is the best robot we've ever tested.</p>
b
元素默认显示为粗体。i元素简介
HTML5将
i
重新定义为:
i
元素表示一块不同于其他文字的文字,具有不同的语态或语气,或其他不同于常规之处,用于如分类名称、技术术语、外语里的惯用语、思想、西方文字中的船舶名称等。例如:
- <p>The <i lang="la">Ulmus americana</i> is the Massachusetts state tree.</p>
- <p>The <i>Orient Express</i> began service in 1883.<p>
- <p>The couple exhibited a <i lang="fr">joie de vivre</i>> that was infectious.<p>
i
元素默认显示为斜体。