<b> 和 <strong>、<i> 和 <em> 有什么区别?

What's the difference between <b> and <strong>, <i> and <em>?

提问人:Philip Morton 提问时间:11/7/2008 更新时间:6/7/2023 访问量:521021

问:

在HTML/XHTML中,和和有什么区别?什么时候应该使用?<b><strong><i><em>

HTML xhtml

评论

3赞 Kos 4/1/2015
Смотритетакже: programmers.stackexchange.com/a/255588/12693
0赞 OverCoder 6/18/2015
至少就目前而言,我在 StackOverflow 中看到的所有内容都是使用 <b> 元素“加粗”的
1赞 totymedli 6/14/2017
MDN 对如何使用这些标签有明确的描述(带有示例):<em>、<strong>、<b>、<i>
0赞 Lexus de Vinco 6/22/2022
屏幕阅读器会使用单词重音来发音<em>中的单词,并带有强调。

答:

284赞 Tony Andrews 11/7/2008 #1

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

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

评论

24赞 OregonGhost 11/7/2008
很好的解释。另一方面,在 HTML 5 中,<i> 和 <b> 也是语义的,而不是显式的。叹息。
5赞 Natan Yellin 8/3/2011
是的,我读过的最好的解释是 stellify.net/......
37赞 chharvey 1/21/2012
HTML5 对 和 具有新的语义含义。当您需要引起人们对散文的一部分的注意或抵消正常散文时,您应该使用它们,而无需传达强调 ()、重要性 (for ) 或相关性 (for)。 用于关键字、产品名称、可操作词等,而用于技术术语、思想、短语等。老实说,国际海事组织,两者之间需要有更大的区别。biemstrongmarkbi
2赞 Oskar Duveborn 8/7/2012
太糟糕了,stellify.net 文本(和标题)在大多数廉价的办公显示器和设置上完全无法阅读(^^缺乏对比度简直令人惊叹)
0赞 Minh Nghĩa 12/7/2021
那么曾经真的用来定型呢?<b>
32赞 James 11/7/2008 #2

<strong>并为您的文档添加额外的语义含义。碰巧的是,它们还为您的文本提供了粗体和斜体样式。<em>

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

<b>另一方面,仅应用字体样式,不应再使用。(因为你应该用CSS格式化,如果文本真的很重要,那么你可能会让它变得“强烈”或“强调”!<i>

希望这是有道理的。

评论

2赞 Nirman 7/8/2014
如果你说,<b>和<i>不应该再使用,那么不支持<em>和<strong>的旧浏览器呢?
5赞 yeyo 11/26/2014
@Nirman 如果有人使用旧浏览器浏览网页,从视觉和安全的角度来看,他或她已经有很多问题。正因为如此,我认为程序员和设计人员不应该再支持旧的浏览器了。
7赞 Mr Lister 3/28/2017
注意:如果我们说旧浏览器,我们指的是 Netscape 3 和 IE2(IE3 和 NS4 已经支持 <strong> 和 <em>)。如果你真的需要继续支持那些 20 世纪的浏览器,你就有大麻烦了。
0赞 7/31/2019
<b> and <i> on the other hand only apply font styling and should no longer be used.官方 HTML5 文档则不然。需要引用吗?
3赞 James 7/31/2019
这个答案是在 HTML5 发布前 ~6 年发布的!
0赞 nickf 11/7/2008 #3

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

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

评论

2赞 user2867288 1/8/2015
完全不正确,不应避免使用<b>和<i>。它们在 HTML5 中具有语义含义。
0赞 Antonio Louro 11/7/2008 #4

“它们具有相同的效果。但是,XHTML(一个更简洁、较新的 HTML 版本)建议使用该标记。强更好,因为它更容易阅读——它的意思更清晰。此外,传达一个含义 - 强烈显示文本 - 而(粗体)传达一种方法 - 加粗文本。有了 strong,如果你使用 CSS 样式表来改变使文本变得强大的方法是什么,你的代码仍然有意义。<strong><strong><b>

和 “之间的区别也是如此。<i><em>

谷歌dixit:

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

4赞 Stephan Leclercq 11/7/2008 #5

bi 表示您希望将文本呈现为粗体或斜体。strongem 表示您希望以用户理解为“重要”的方式呈现文本。默认设置是将 strong 呈现为粗体,将 em 呈现为斜体,但其他一些区域性可能会使用不同的映射。

就像程序中的字符串一样,bi 将是“硬编码”的,而 strongem 将是“本地化”的。

2赞 JamShady 11/7/2008 #6

正如其他人所说<b>和<i>是明确的(即“使这段文字加粗”),而<strong>和<em>是语义的(即“这段文字应该被强调”)。

在现代网络浏览器的上下文中,很难看出差异(它们似乎都产生了相同的结果,对吧?),但想想视障人士的屏幕阅读器。如果屏幕阅读器遇到 <i> 标签,它将不知道该怎么做。但是,如果它遇到一个<em>标签,它就知道无论里面有什么,都应该向听众强调。从中你会得到实际的区别。

评论

0赞 7/31/2019
<b> and <i> are explicit (i.e. "make this text bold"),呃。官方 HTML5 文档则不然。需要引用吗?
2赞 JamShady 6/24/2020
我在 2008 年 11 月发布了这个答案。HTML5 于 2014 年发布。你是不是老实说要求我在回答中引用八年后出现的东西??
1195赞 splattne 11/7/2008 #7

它们在普通的 Web 浏览器渲染引擎上具有相同的效果,但它们之间存在根本区别

正如作者在讨论列表帖子中所写:

想想三种不同的情况:

  • Web 浏览器
  • 盲人
  • 手机

“粗体”是一种风格——当你说“粗体一个词”时,人们基本上都知道 这意味着在字母周围添加更多,比如说“墨水”,直到它们脱颖而出 在其余的信件中更多。

不幸的是,这对盲人来说毫无意义。在手机上 和其他 PDA 一样,文本已经是粗体的,因为屏幕分辨率非常小。你不能在不搞砸东西的情况下加粗。

<b>是一种风格——我们知道“大胆”应该是什么样子。

然而,<强>表明应该如何理解某事。在浏览器中,“Strong”可能(并且经常)表示“粗体”,但它也可能意味着像 Jaws(针对盲人)这样的口语程序的较低音调,或者在 Palm Pilot 上用下划线表示(因为你不能加粗)。

HTML 从来都不是关于样式的。搜索“Tim Berners-Lee”“the semantic web”。 是语义的——它描述它周围的文本(例如,“此文本应该比你显示的文本的其余部分更强”),而不是描述它周围的文本应该如何显示(例如,“此文本应该加粗”)。<strong>

评论

193赞 Natan Yellin 8/3/2011
请注意,HTML5 中尚未弃用 <b> 和 <i>。它们的新用途是在语义上表示样式(或预期的表示),而<strong>和<em>表示结构。你必须阅读 stellify.net/...
17赞 TravisO 8/17/2013
很好的答案,但我想说“你不能加粗”是错误的,因为你假设它是一个布尔概念,而 font-weight: 采用更可变的方法。现在高保真屏幕已经存在,大胆程度也就更高了。
5赞 Brian Ortiz 8/25/2013
@TravisO我相信他是在谈论Palm Pilot的具体技术限制。
4赞 Aprillion 11/1/2013
我不相信一堆字母有任何内在含义,如果我们决定的话,<b>可以具有与<strong>完全相同的语义。读者的制作者决定了什么,他们是以不同的方式对待他们还是以完全相同的方式对待他们?
26赞 Mr Lister 12/3/2013
@deathApril 但是他们做到了!它们确实有意义!HTML 不是由你所相信的或你决定的来定义的。
7赞 Kariem 11/7/2008 #8

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

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

评论

1赞 chharvey 1/21/2012
strong并不表示“更强调”,而是表示“重要性”。为了更有力地强调,将一个元素嵌套在另一个元素中。emem
0赞 Kariem 1/23/2012
@TestSubject528491,如果您点击我上面使用的短语元素的链接,您会看到我刚刚引用了规范。我不认为这与重要性的语义相冲突,也不认为两个 s 嵌套在一个强调中强调,我理解你是在建议。em
3赞 chharvey 1/23/2012
我认为 HTML5 规范只是在两者之间做了更多的区分。在我的解释中,“强调”意味着语气的重音。例如,“你想买那些牛仔裤吗?”和“你想那些牛仔裤?”由于强调位置不同,有不同的含义。OTOH,“重要性”不会根据位置产生影响。例如,“警告:当心狗!”如果删除重要性,则其含义相同。
0赞 7/31/2019
<b> and <i> are both related to style呃。官方 HTML5 文档则不然。需要引用吗?
0赞 Kariem 7/31/2019
上面链接的 HTML 4 @vaxquis: and 是字体样式元素,而 and 是短语元素。有什么建议可以改进吗?为了完整起见,也因为您的评论没有包含引文,在 HTML 5.2 中,所有这些元素都在措辞内容中进行了描述<b><i><em><strong>
0赞 Mecki 11/7/2008 #9

您通常应尽量避免 和 .在创建 CSS 之前,它们在早期的 HMTL 版本中被引入用于布局页面(改变其外观),例如 while removed 标签,并且主要是为了向后兼容而保留的,因为一些论坛允许内联 HTML,这是一种更改文本外观的简单方法(例如 BBCode 使用 , 您可以使用等)。<b><i>font[i]<i>

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

<em>另一方面,只说某事被“强调”或“强烈强调”,它让浏览器完全开放如何呈现它。默认情况下,大多数浏览器将按照标准建议的斜体和粗体呈现,但它们不会被迫这样做(它们可能使用不同的颜色、字体大小、字体等)。您可以使用 CSS 以您想要的方式更改行为。例如,如果您愿意,您可以加粗,也可以加粗和红色。<strong>emstrongemstrong

评论

8赞 thomasrutter 3/16/2009
<b> 和 <i> 在 HTML 4 中没有被弃用,即使在即将到来的 HTML 5 中仍然完全受支持。<em> 和 <strong> 都不能替代它们。另请参阅 w3.org/TR/html401/index/elements.html
1赞 Mecki 10/22/2016
@thomasrutter 它们仍在 HMTL5 中,但具有不同的含义,并且非常详细地解释了如何使用它们,或者更确切地说,如何不使用它们。请注意,这些标签没有任何意义(粗体和斜体不是含义,它们是设计指令,HMTL 是关于意义的,CSS 是关于 aobut design) - HTML 是关于描述文本是什么,而不是关于如何呈现它(这是在 HMTL3 之后分开的,这是有充分理由的)。
7赞 mwiik 11/9/2008 #10

虽然 和当然在语义上更正确,但似乎有明确的合法理由将 and 标签用于客户编写的内容。<strong><em><b><i>

在此类内容中,单词或短语可能被加粗或斜体,我们通常无法分析这种加粗或斜体的语义推理。

此外,此类内容可以引用粗体和斜体的单词和短语来传达特定的含义。

一个例子是英语考试问题,它指示学生替换粗体字。

评论

0赞 7/31/2019
“语义上更正确”?你这是什么意思?您是否阅读过 b/i 标签的 HTML5 规范?
1赞 Chris BeHanna 11/9/2008 #11

正如其他人所说,区别在于 和 硬编码字体样式,而 and 决定语义含义,字体样式(或朗读浏览器语调,或你有什么)将在文本呈现(或朗读)时确定。<b><i><strong><em>

如果您愿意,您可以将其视为“物理”字体样式和“逻辑”样式之间的区别。在以后的某个时候,您可能希望更改文本的显示方式和显示方式,例如,通过更改样式表中的属性来添加颜色和大小更改,甚至完全使用不同的字体。如果使用了“逻辑”标记而不是硬编码的“物理”标记,则只需在样式表中的一个位置更改显示属性,然后引用该样式表的所有页面都会自动更改,而无需编辑它们。<strong><em>

很光滑,对吧?

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

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

评论

1赞 Thomas Eding 9/5/2014
您可以使用样式表来完全改变其呈现方式。很光滑,对吧?<b><i>
0赞 Mecki 7/31/2019
b并且没有任何代码。就像任何 HMTL 标签一样,它们具有默认的 CSS 样式,就像任何标签一样,您可以将其更改为您想要的样子。i
1赞 Justin Blum 3/6/2010 #12

实际上,我同时使用 <strong> 和 <b>,正是出于此回复中提到的原因。有时,粗体对某些文本看起来更好,但它不一定比句子的其余部分更重要。这是我现在正在处理的一个页面的示例:

“检索<strong>all</strong>关于<b>棍网球</b>的书籍。”

在那句话中,“所有”这个词非常重要,而“棍网球”则不那么重要——我只是想要它加粗,因为它代表一个搜索词,所以我想要一些视觉上的分离。如果您使用屏幕阅读器查看页面,我真的认为它不需要特意强调“棍网球”这个词。

我倾向于认为大多数 Web 开发人员使用另一个,但两者都很好——<b>绝对不会像一些人声称的那样被弃用。对我来说,这只是视觉吸引力和意义之间的一条细线。

-5赞 ritakriti 4/7/2011 #13

我们将标签用于具有高优先级的文本,例如产品名称、公司名称等 SEO 目的,而简单则使其加粗。<strong><b>

同样,我们使用 SEO 优先级高的文本,而使文本只是斜体。<em><i>

评论

4赞 Sheepy 9/2/2014
一些HTML标签确实具有SEO应用程序。元描述、元机器人或链接规范等等。因为据我们所知,无论是在理论上还是在实践中,strong/em 都不是其中之一。
1赞 Danubian Sailor 12/15/2011 #14

仅当使用CSS样式类由于任何原因不方便或不可能时才使用它们(如博客系统,只允许在帖子中使用某些标签,并最终嵌入样式)。另一个原因是支持非常古老的浏览器(一些移动设备?)或原始的搜索引擎(为或标记提供点,而不是分析CSS样式)。<b><strong>

如果可以定义 CSS 样式,请使用它们。

8赞 Rick Westera 11/15/2013 #15

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

<b>...出于功利目的而引起注意的文本范围,没有传达任何额外的重要性,也没有暗示其他声音或情绪,例如文档摘要中的关键词、评论中的产品名称、交互式文本驱动软件中的可操作单词文章。

<strong>...现在代表着重要性,而不是强调。

<i>...以另一种声音或情绪表达的文本跨度,或以其他方式以表明不同文本质量的方式偏离正常散文,例如分类名称技术术语来自另一种语言的惯用短语思想或西方文本中的船名

<em>...表示强调。

(这些都是来自 W3C 来源的直接引用,并加了强调。请参阅:原件的 https://rawgithub.com/whatwg/html-differences/master/Overview.html#changed-elementshttp://www.w3.org/TR/html401/struct/text.html#h-9.2.1

7赞 Thomas Eding 9/5/2014 #16

<em>并消耗比 和 更多的带宽。<strong><i><b>

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

它们还会使编辑器屏幕中出现更多文本。我似乎记得程序员喜欢较小的源文件,如果它们是相同的。(让我们说实话,它们是一样的。是的,存在“技术”(<i>咳嗽</i>,咳咳,对不起)差异,但这主要是虚假的。

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

评论

4赞 GDP2 12/24/2019
哈哈,这应该是公认的答案(HHOS)。你的答案是整个页面上最接地气、最正确的答案,即使它有点开玩笑。关于“语义”的整个事情一开始就是一个愚蠢的游戏。我们都知道,任何查找此问题的人都在与主要的浏览器供应商合作,Chrome,Firefox,IE等。我们只是想知道真正的实际的差异可能是什么,而不是委员会在充足的业余时间里辩论什么。
-2赞 ahnbizcad 9/11/2015 #17

<strong>并且是抽象的(这就是人们说它是语义的意思)。 并且是使某事“强大”或“强调”的具体方法<em><b><i>

类比:

既是 to ,也是 is to<strong><b><em><i>

“车辆”是“吉普车”

评论

2赞 aditya_medhe 11/25/2019
我不明白为什么这个答案被否决了。许多其他内容相似的答案也广受好评。
0赞 Muhammad Awais 6/11/2016 #18

HTML 格式元素:

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

HTML 粗体和强格式:

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

<b>This text is bold</b>

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

<strong>This text is strong</strong>

HTML 斜体和强调的格式:

HTML <i> 元素定义斜体文本,不带任何额外内容 重要性。

<i>This text is italic</i>

HTML <em> 元素定义强调的文本,并添加了语义 重要性。

<em>This text is emphasized</em>

评论

0赞 7/31/2019
The HTML <b> element defines bold text, without any extra importance. The HTML <i> element defines italic text, without any extra importance.呃。官方 HTML5 文档则不然。需要引用吗?
4赞 adnan2nd 4/19/2017 #19

<i>、 和 标记传统上是表示性的。但是它们在HTML5中被赋予了新的语义含义<b><em><strong>

<i>并用于 HTML4 中的字体样式。 用于斜体和粗体。在 HTML5 中,tag 具有“替代声音或情绪”的新语义含义,而 tag 具有风格偏移的含义。<b><i><b><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>并在 HTML4 中具有强调和强烈强调的含义。但在 HTML5 中意味着强调,意味着强烈的重要性<strong><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

1赞 Touhidur Rahaman 2/6/2020 #20

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

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

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

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

13赞 squarecandy 7/15/2020 #21

我将在这里冒险进行历史和实际的热点:

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

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

是的,W3C 推荐 - 基本上 - TL,DR;不要使用 B 和 I。

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

但:

现实世界的互联网上有大量现有的 HTML,这些 HTML 永远不会更新。现实世界的互联网必须考虑在庞大的软件网络和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 海洋可以满足这种期望,我无法想象它会被贬值以支持,或者浏览器会开始默认以不同的方式显示它们。bstrong

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

-2赞 hammad khan 8/18/2020 #22

在 HTML Lang 中,这两个标签的使用方式如下:

simple text this is test text normal text



simple text this is important textwith normal text

这两个 HTML 标签之间的主要区别在于,粗体使文本在视觉上看起来只是粗体,而强烈的象征意义也使各自的文本变得必不可少,并表明它是一个清晰的单词或文本部分。

这种差异是由于 HTML 代码区分了符号和物理视觉 html 标记。前者指的是相关领域的含义,而后者只是定义了浏览器中的光学显示。

2赞 Junaga 7/29/2021 #23

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

语义意义(来自 MDN)

<p>Here at company XYZ, we use <b>HTML</b> and <b>Javascript</b>.</p>
  • <i>惯用文本元素
    • 替代声音或情绪
    • 分类名称(例如属和种“智人”)
    • 来自其他语言的惯用语(例如“et cetera”)
    • 技术术语
<p>I <i>did</i> tell him, to arrive on time for the meeting.</p>

<b>与。<strong>

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

<i>与。<em>

该元素表示其内容的强调,而该元素表示与正常散文相脱的文本。<em><i>

我的 2 美分

我个人更喜欢和.<b><i><strong><em>

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

1赞 Al Mamun Khan 6/13/2022 #24

问:strong、b、bold、em、i的区别?

答:这些是内联属性。

强:用于在语义上显示粗体或突出显示文本。

粗体或 b:此粗体标记只是常规样式为粗体的偏移文本。

em:标签在语义上强调重要的词。<em>

i :标记仅偏移常规斜体样式的文本。<i>

注意:您应该使用 <strong></strong> 和 <em></em> 标记它们有意义的名称,以说明内容类型。语义标签对SEO也很有帮助。

1赞 Gugalcrom123 6/7/2023 #25

首先,如果要设置文本样式来表示设计决策,请不要使用其中任何一个。为此,您应该使用CSS。

🙅 ♂️ 别这样

<article>
  <h1>Illa videamus, quae a te de amicitia dicta sunt.</h1>
  <b>John Doe, 23 March 2023</b>

  <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suam denique cuique naturam esse ad vivendum ducem. <mark>Venit ad extremum;</mark> <a href="http://loripsum.net/">Quo igitur, inquit, modo?</a> Certe, nisi voluptatem tanti aestimaretis. </p>

  <ul>
    <li>Quae fere omnia appellantur uno ingenii nomine, easque virtutes qui habent, ingeniosi vocantur.</li>
    <li>Transfer idem ad modestiam vel temperantiam, quae est moderatio cupiditatum rationi oboediens.</li>
    <li>Ergo in utroque exercebantur, eaque disciplina effecit tantam illorum utroque in genere dicendi copiam.</li>
  </ul>
</article>

B 不再代表粗体,I 不再代表斜体,U 不再代表下划线。不要将这些视为您的文字处理器按钮。首字母缩写是早期 Web 标准中遗留下来的。如今,它们的含义是:

时髦的名字。他们必须以某种方式保留首字母缩写。

这些元素确实具有语义意义,尽管意义较弱,并且没有被弃用。它们用于简单地将一些文本与周围的文本区分开来。

回到示例:

👍 这是语义 HTML

cite {
  font-weight: bold;
  font-style: normal; /* we override the browser styling here, to make it look like the previous example */
}
<article>
  <h1>Illa videamus, quae a te de amicitia dicta sunt.</h1>
  <cite>John Doe, 23 March 2023</cite>

  <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suam denique cuique naturam esse ad vivendum ducem. <mark>Venit ad extremum;</mark> <a href="http://loripsum.net/">Quo igitur, inquit, modo?</a> Certe, nisi voluptatem tanti aestimaretis. </p>

  <ul>
    <li>Quae fere omnia appellantur uno ingenii nomine, easque virtutes qui habent, ingeniosi vocantur.</li>
    <li>Transfer idem ad modestiam vel temperantiam, quae est moderatio cupiditatum rationi oboediens.</li>
    <li>Ergo in utroque exercebantur, eaque disciplina effecit tantam illorum utroque in genere dicendi copiam.</li>
  </ul>
</article>

它们产生相同的视觉效果,但它们的语义不同。将文章信息加粗是一项设计决策。(此外,该元素是另一个语义标签 - 它指示内容的来源)<cite>

此外,这些标签可以使用 CSS 设置样式 - 查看 MDN 中的示例以查看一些潜在的样式。

默认情况下,在大多数浏览器中,和标记会产生相同的视觉结果,但这只是一个巧合<strong><b>

它们具有不同的语义含义。虽然 、 和 标签只是将文本分开,但 和 标签用于创建强调。这不仅代表了将某些文本分开,还将其标记为重要。对于屏幕阅读器,它通常也会改变音调。正如您可能想象的那样,该标签表示更强的强调程度。<b><i><u><strong><em><strong>

是的,我完全看到在很多地方被设置为带下划线的样式,这是完全有效的语义 HTML。<strong>

最后,这里有一些例子来帮助你做出决定:

.note {
  background-color: #ffff0080;
}
<article>
  Humans (<i>Homo sapiens</i>) are the most widespread species of primate.<br>
  <i>Around the World in Eighty Days</i> was one of Jules Verne's most notable works.
  <div class="note">
    In these examples, I used the <code>&lt;i&gt;</code> tag to indicate text that should be simply set apart - you wouldn't intonate it when reading the above sentences aloud.
  </div>
</article>
<article>
  This is <em>urgent</em>. The deadline is in <em>one week</em>.<br>
  Linux Mint is <em>widely praised</em> for its user-friendly interface and stability.
  <div class="note">
    In these examples, I used the <code>&lt;em&gt;</code> tag instead, to indicate a text of particular importance.
  </div>
</article>

当然,这些例子也适用于 or 。<b><strong>

评论

0赞 Manav 11/30/2023
谢谢,这是一个非常有帮助的答案!