在HTML/XHTML中<b>和<strong>, <i>和<em>之间的区别是什么?什么时候使用它们?


当前回答

<b>和<i>都与风格有关,而<em>和<strong>是语义的。在HTML 4中,前者被归类为字体样式元素,后者被归类为短语元素。

正如您正确指出的,<i>和<em>通常被认为是相似的,因为浏览器通常以斜体显示它们。但根据规范,<em>表示强调,<strong>表示更强调,这很清楚,但经常被误解。另一方面,何时使用<i>或<b>之间的区别实际上是一个风格问题。

其他回答

HTML格式元素:

HTML还定义了特殊元素,用于定义具有特殊含义的文本。 HTML使用像<b>和<i>这样的元素来格式化输出,比如粗体或斜体文本。

HTML粗体和强格式:

HTML <b>元素定义了粗体文本,没有任何额外的重要性。

<b>This text is bold</b>

HTML <strong>元素定义了强文本,并添加了语义 “强大”的重要性。

<strong>This text is strong</strong>

斜体和强调格式:

HTML <i>元素定义了斜体文本,没有任何额外的内容 的重要性。

<i>This text is italic</i>

HTML <em>元素定义了带有附加语义的强调文本 的重要性。

<em>This text is emphasized</em>

<b>和<i>是显式的-它们分别指定粗体和斜体。

<strong>和<em>是语义上的-它们指定所包含的文本应该以某种方式“强”或“强调”,通常是粗体和斜体,但允许通过CSS控制实际的样式。因此,这些是现代网页的首选。

我要冒险从历史和现实的角度来分析:

是的,根据规范,<strong>在HTML4中具有语义意义,<b>具有严格的表示意义。

是的,当HTML5出现时,b和i引入了略有不同的新语义。

是的,W3C基本上推荐TL,DR;不要用b和i。

您应该始终记住,b元素的内容不一定总是粗体,i元素的内容也不一定总是斜体。实际的样式取决于CSS样式定义。您还应该记住,在某些语言中,粗体和斜体可能不是内容的首选样式。如果有更描述性和更相关的标记可用,则不应该使用b和i标记。

BUT:

现实世界的互联网有大量的现有HTML,这些HTML永远不会更新。现实世界的互联网必须考虑在庞大的软件和CMS系统网络之间生成和复制粘贴的内容,这些软件和CMS系统都有不同的开发团队,建立在不同的时代。

因此,如果您正在编写HTML或构建一个为其他人编写HTML的系统,当然,一定要使用<strong>而不是<b>来表示“强烈强调”,因为它在语义上更正确。

但实际上,实际情况是,<strong>和<b>的语义和风格意义已经随着时间的推移而合并。

如果我正在构建一个允许任何样式文本粘贴的CMS,我需要为正在粘贴<b>并表示“强烈强调”的人以及正在粘贴<strong>并表示“使此文本加粗”的人进行计划。这可能不是“正确的”,但这就是现实世界在这个时刻的运作方式。

因此,如果我为该网站写一个样式表,我可能最终会写一些样式,看起来像这样:

b,
strong {
  font-weight: 700;
  /* ... more styles here */
}

i,
em {
  font-style: italic;
  /* ... more styles here */
}

或者,我将依赖于浏览器的默认值,它在我所知道的每个现代浏览器中执行与上述代码相同的任务。

或者,我可能是数百万个使用normalize.css的网站之一,它会注意确保b和strong被同等对待。

世界上已经有如此庞大的HTML海洋在这个期望下工作,我只是无法想象b会被贬低而支持strong,或者浏览器会开始默认地以不同的方式显示它们。

就是这样。这就是我对语义、历史和现实世界的看法。b/i和strong/em是一样的吗?不。在现代文明崩溃之前,它们是否可能在几乎所有情况下都存在并被视为相同?我想是的。

<strong>和<em>为您的文档添加额外的语义含义。它只是这样,他们也给你的文本一个粗体和斜体样式。

你当然可以用CSS覆盖它们的样式。

另一方面,<b>和<i>只应用字体样式,不应该再使用。(因为你应该使用CSS格式,如果文本确实很重要,那么你可能会让它“强”或“强调”!)

希望大家能理解。

<b>和<i>应该避免使用,因为它们描述了文本的风格。相反,使用<strong>和<em>,因为它们描述了文本的语义(含义)。

与HTML中的所有内容一样,您不应该考虑您希望它看起来如何,而是应该考虑您的实际含义。当然,对你来说可能只是粗体和斜体,但对屏幕阅读器来说不是。