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


当前回答

“它们的效果是一样的。但是,XHTML(一种更干净、更新的HTML版本)推荐使用<strong>标记。Strong更好,因为它更容易读懂——它的意思更清楚。此外,<strong>传达了一种含义-强显示文本-而<b>(用于加粗)传达了一种方法-将文本加粗。使用strong,如果您使用CSS样式表更改使文本强的方法,那么您的代码仍然有意义。

<i>和<em> "之间的差异也是如此。

谷歌迪克西特:

http://wiki.answers.com/Q/What_is_the_difference_between_HTML_tags_b_and_strong

其他回答

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

是的,根据规范,<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是一样的吗?不。在现代文明崩溃之前,它们是否可能在几乎所有情况下都存在并被视为相同?我想是的。

B或I表示您希望文本显示为粗体或斜体。Strong或em意味着你希望文本以一种用户理解为“重要”的方式呈现。默认是将strong显示为粗体,em显示为斜体,但一些其他区域性可能使用不同的映射。

就像程序中的字符串一样,b和i将被“硬编码”,而strong和em将被“本地化”。

<em>和<strong>消耗的带宽大于<i>和<b>。

它们还需要更多的输入(如果不是自动生成的话)。

它们还会让编辑器屏幕上充斥着更多的文本。我似乎记得程序员喜欢小一点的源文件,如果它们是相同的。(让我们面对现实吧,它们是一样的。是的,确实存在“技术”差异(<i>咳嗽</i>,咳咳,不好意思),但这基本上是假的。)

对于上面的任何标记,如果您需要它们与默认呈现不同,您可以使用样式表自定义它们的显示方式。

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控制实际的样式。因此,这些是现代网页的首选。