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


当前回答

<i>, <b>, <em>和<strong>标签传统上具有代表性。但在HTML5中,它们被赋予了新的语义含义。

<i>和<b>在HTML4中用于字体样式。<i>为斜体,<b>为粗体。在HTML5中,<i>标签具有“替代声音或情绪”的新语义含义,<b>标签具有风格上偏移的含义。

<i>标签的使用例子有:分类名称、技术术语、来自另一种语言的惯用短语、音译、一种思想、西方文本中的船名。例如:

<p><i>I hope this works</i>, he thought.</p>

<b>标记的使用示例包括文档摘要中的关键字、评论中的产品名称、交互式文本驱动软件中的可操作单词、文章导语。

下面的示例段落在风格上与后面的段落有所偏移。

<p><b class="lead">The event takes place this upcoming Saturday, and over 3,000 people have already registered.</b></p>

<em>和<strong>在HTML4中具有强调和强强调的含义。但在HTML5中,<em>表示强调,<strong>表示强烈的重要性。

在下面的例子中,在阅读之前的单词时应该会有语言上的变化。

<p>Make sure to sign up <em>before</em> the day of the event, September 16, 2016</p>

在同样的例子中,我们可以使用<strong>标记,如下所示。

<p>Make sure to sign up <em>before</em> the day of the event, <strong>September 16, 2016</strong></p>

重视活动日期。

MDN裁判:

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/b

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/i

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/em

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/strong

其他回答

正如其他人所说,<b>和<i>是显式的(即。"使此文本加粗"),而<strong>和<em>是语义的(即:“应该强调这篇文章”)。

在现代网络浏览器的环境中,很难看出两者的区别(它们似乎产生了相同的结果,对吧?),但想想为视力受损的人设计的屏幕阅读器。如果屏幕阅读器遇到<i>标记,它将不知道该做什么。但是如果它遇到<em>标签,它就知道应该向侦听器强调其中的内容。这就是实际的区别。

以下是定义和建议用法的摘要:

< b >…为了功利目的而被吸引注意力的一段文字,没有传达任何额外的重要性,也没有其他声音或情绪的暗示,如文档摘要中的关键词,评论中的产品名称,交互式文本驱动软件中的可操作的单词,或文章导语。

< >强…Now表示重要性,而不是强调。

<我>…以一种不同的语态或语气出现的一段文本,或以一种表明不同文本质量的方式偏离正常的散文,如分类名称、技术术语、来自另一种语言的惯用短语、思想或西方文本中的船名。

< em >…表示强调。

(这些都是从W3C来源直接引用的,其中还添加了我的重点。原文见:https://rawgithub.com/whatwg/html-differences/master/Overview.html#changed-elements和http://www.w3.org/TR/html401/struct/text.html#h-9.2.1)

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

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

我同时使用<strong>和<b>,实际上,正是因为这个回复线程中提到的原因。有些时候,某些文本加粗看起来更好,但在语义上并不一定比句子的其他部分更重要。下面是我现在正在做的一个例子:

"检索<strong>所有</strong>书籍关于<b>长曲棍球</b>。"

在这句话中,单词“all”非常重要,而“lacrosse”就不那么重要了——我只是想把它加粗,因为它代表一个搜索词,所以我想在视觉上进行一些分离。如果你正在用屏幕阅读器浏览页面,我真的不认为它需要特意强调“长曲棍球”这个词。

我倾向于想象大多数web开发人员使用其中的一种,但两者都很好-<b>绝对不会被弃用,就像一些人声称的那样。对我来说,这只是视觉吸引力和意义之间的细微差别。

通常应该尽量避免<b>和<i>。它们在CSS创建之前的早期HMTL版本中被引入用于布局页面(改变它的外观),就像同时删除的字体标签一样,主要是为了向后兼容,因为一些论坛允许内联HTML,这是一种简单的改变文本外观的方法(比如BBCode使用[i],你可以使用<i>等等)。

自从CSS创建以来,布局实际上不再是HTML中应该做的事情,这就是为什么CSS被创建在第一个地方(HTML ==结构,CSS ==布局)。这些标签在未来可能会消失,毕竟,如果你需要一个“毫无意义”的字体变化,你可以使用CSS和span标签来使文本变成粗体/斜体。HTML 5仍然允许这样做,但声明以这种方式标记文本没有意义。

另一方面,<em>和<strong>只表示某些内容被“强调”或“强烈强调”,它让浏览器完全开放如何渲染它。大多数浏览器默认会将em显示为斜体和粗体,但它们并不是被迫这样做的(它们可能使用不同的颜色、字体大小、字体等等)。您可以使用CSS以您想要的方式更改行为。如果你喜欢,你可以让它们加粗,比如加粗和红色。