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


当前回答

<b>和<i>,没有实际的语义意义(就像@splattne指出的那样)是正确的,在很久以前。在现代HTML5 (<!DOCTYPE html>)它们确实有意义。查看以下链接。

语义(来自MDN)

<b>:引起注意元素 摘要中的关键字 产品名称。

<p>Here at company XYZ, we use <b>HTML</b> and <b>Javascript</b>.</p>

<i>: Idiomatic Text元素 不同的声音或情绪 分类学名称(如“智人”属和种) 来自另一种语言的惯用术语(如“等等”) 技术术语

<p>I <i>did</i> tell him, to arrive on time for the meeting.</p>

<b> vs. <strong>

认识到这两者在HTML5中都是有效的语义元素,并且它们在大多数浏览器中都具有相同的默认样式(粗体)可能会有所帮助(尽管一些较老的浏览器实际上下划线<strong>)。每个元素都是在特定类型的场景中使用的,如果你想要加粗文本作为装饰,你应该实际使用CSS font-weight属性。源

<i> vs. <em>

<em>元素表示其内容的重音强调,而<i>元素表示与普通散文分开的文本。源

我的2美分

我个人更喜欢<b>和< I >而不是<strong>和<em>。

它们更短,从开发人员的角度来看,它们的语义也很有意义。 我不知道今天的屏幕阅读器是否能和它们一起工作。如果没有,我想他们最终会的。A18n是一个很难的主题,我只是遵循文档的引导。MDN说我可以用它们,所以我就用了。

其他回答

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

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

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>

<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>标记

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

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

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

正如其他人所述,区别在于<b>和<i>硬编码字体样式,而<strong>和<em>指示语义,字体样式(或语音浏览器语调,或其他什么)在文本呈现(或语音)时确定。

You can think of this as a difference between a “physical” font style and a “logical” style, if you will. At some later time, you may wish to change the way <strong> and <em> text are displayed, say, by altering properties in a style sheet to add color and size changes, or even to use different font faces entirely. If you've used “logical” markup instead of hardcoded “physical” markup, then you can simply change the display properties in one place each in your style sheet, and then all of the pages that reference that style sheet get changed automatically, without ever having to edit them.

很狡猾,是吧?

这也是为段落、表格单元格、标题文本、标题等定义子样式(在文本标记中使用style=属性引用)以及使用<div>标记的基本原理。您可以在样式表中为逻辑样式定义物理表示,更改会自动反映在引用该样式表的网页中。想要源代码的不同表示形式?重新定义“代码”风格的字体、大小、粗细、间距等。

如果使用XHTML,甚至可以定义自己的语义标记,样式表将为您完成到物理字体样式和布局的转换。