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


当前回答

只有在使用CSS样式类不方便或不可能的情况下才使用它们(比如博客系统,只允许在帖子中使用一些标签,最终嵌入样式)。另一个原因是支持非常老的浏览器(一些移动设备?)或原始的搜索引擎(给<b>或<strong>标签加分,而不是分析CSS样式)。

如果你可以定义CSS样式,那就使用它们。

其他回答

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

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

对于文本粗体使用<b>标记

对于重要的文本,使用<strong>标记

对于文本斜体样式使用<i>标签

对于强调的文本使用<em>标签

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

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

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

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

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

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