它们对普通的 Web 浏览器渲染引擎具有相同的效果,但它们之间存在根本区别。
正如作者在 a discussion list post 中所写:
考虑三种不同的情况:
网络浏览器
盲人
手机
“粗体”是一种风格——当你说“粗体字”时,人们基本上知道这意味着在字母周围添加更多,比如说“墨水”,直到它们在其他字母中更加突出。
不幸的是,这对盲人来说毫无意义。在手机和其他 PDA 上,文本已经是粗体了,因为屏幕分辨率非常小。你不能在不搞砸的情况下加粗一个粗体。
<b>
是一种风格 - 我们知道“粗体”应该是什么样子。
<strong>
但 表示应如何理解某事。 “强”在浏览器中可能(并且经常)意味着“粗体”,但它也可能意味着像 Jaws(盲人)这样的口语程序的语气较低或用下划线表示(因为你不能加粗粗体)在 Palm Pilot 上。
HTML 从来都不是关于样式的。对 "Tim Berners-Lee" 和 “语义网”执行 some searches。 <strong>
是语义的——它描述了它所包围的文本(例如,“这个文本应该比其他文本更强大您显示的文本”)而不是描述如何它周围的文本应该显示(例如,“这个文本应该是粗体")。
<b>
和 <i>
是显式的 - 它们分别指定粗体和斜体。
<strong>
和 <em>
是语义化的 - 它们指定包含的文本应该以某种方式“强”或“强调”,通常是粗体和斜体,但允许通过 CSS 控制实际样式。因此,这些在现代网页中是首选。
b
和 i
具有新的语义含义。当您需要引起对散文的一部分的注意,或为了抵消普通散文,而不传达重点(em
)、重要性(对于strong
)或相关性时,它们是您应该使用的标签(对于 mark
)。 b
用于关键字、产品名称、可操作的词等,而 i
用于技术术语、想法、短语等。老实说,IMO 需要在两者之间有更大的区别。
<b>
曾经真的用来设置样式吗?
<strong>
和 <em>
为您的文档添加额外的语义含义。碰巧它们还为您的文本提供了粗体和斜体样式。
你当然可以用 CSS 覆盖他们的样式。
另一方面,<b>
和 <i>
仅应用字体样式,不应再使用。 (因为您应该使用 CSS 进行格式化,并且如果文本确实很重要,那么您可能会使其“强”或“强调”!)
希望这是有道理的。
<b> and <i> on the other hand only apply font styling and should no longer be used.
官方 HTML5 文档另有说明。需要引用吗?
以下是定义的摘要以及建议的用法:
<b>
...出于实用目的而引起注意的一段文本,但没有传达任何额外的重要性,也没有暗示其他声音或情绪,例如文档摘要中的关键词 、评论中的产品名称、交互式文本驱动软件中的可操作字词或文章主题。
<strong>
...现在代表重要性而不是强调。
<i>
...一段文本以另一种声音或语气,或以其他方式偏离正常散文以指示不同质量的文本,例如 分类名称、技术术语、另一种语言的惯用短语、思想或西方文本中的船名。
<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>
都与样式有关,而 <em>
和 <strong>
是语义。在 HTML 4 中,第一个被归类为 font style elements,后者被归类为 phrase elements。
正如您正确指出的那样,<i>
和 <em>
通常被认为是相似的,因为浏览器通常都以斜体呈现。但是根据规范,<em>
表示强调,而<strong>
表示更强调,这很清楚,但经常被误解。另一方面,何时使用 <i>
或 <b>
之间的区别实际上是一种风格问题。
em
的嵌套在一个强调中强调,我理解你的建议。
<b> and <i> are both related to style
嗯。官方 HTML5 文档另有说明。需要引用吗?
<b>
和 <i>
是字体样式元素,而 <em>
和 <strong>
是短语元素。有什么建议可以改进吗?为了完整起见,也因为您的评论没有包含引用,在 HTML 5.2 中,所有这些元素都在 phrasing content
我将在这里冒险历史和实际的热门话题:
是的,根据规范,<strong>
在 HTML4 中具有语义含义,而 <b>
具有严格的表示含义。
是的,当 HTML5 出现时,为 b
和 i
引入了稍微不同的新语义含义。
是的,W3C recommends——基本上——TL,DR;不要使用 b 和 i。
您应该始终牢记 ab 元素的内容可能并不总是粗体,而 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, which takes care to ensure that b and strong are treated the same 的网站之一。
世界上已经有如此庞大的 HTML 海洋可以满足这种期望,我只是无法想象 b
会被贬低以支持 strong
或者浏览器会开始以不同的方式显示它们默认。
就是这样了。这是我对语义、历史和现实世界的热门看法。 b/i 和 strong/em 是一样的吗?不会。在现代文明崩溃之前,它们可能都存在并在几乎所有情况下都被视为相同吗?我想是的。
虽然 <strong>
和 <em>
在语义上当然更正确,但似乎有明确的正当理由将 <b>
和 <i>
标记用于客户编写的内容。
在此类内容中,单词或短语可能会加粗或斜体,而我们通常无法分析这种加粗或斜体的语义推理。
此外,这样的内容可以指代粗体和斜体字和短语以传达特定含义。
一个例子是一个英语考试问题,它指示学生替换粗体字。
<em>
和 <strong>
消耗的带宽比 <i>
和 <b>
多。
它们还需要更多的输入(如果不是自动生成的)。
它们还会用更多的文本使编辑器屏幕变得混乱。我似乎记得程序员喜欢较小的源文件,如果它们相同的话。 (让我们成为现实,它们是相同的。是的,存在“技术”(咳嗽,咳咳,对不起)差异,但一开始那大多是假的。)
使用上述任何标签,您可以使用样式表自定义它们的显示方式,如果您需要它们看起来不同于其默认呈现。
b 或 i 表示您希望将文本呈现为粗体或斜体。 strong 或 em 表示您希望以用户理解为“重要”的方式呈现文本。默认情况下,将 strong 渲染为粗体,将 em 渲染为斜体,但某些其他文化可能使用不同的映射。
就像程序中的字符串一样,b 和 i 将被“硬编码”,而 strong 和 em 将被“本地化”。
正如其他人所说, 和 是显式的(即“使此文本变粗”),而 和 是语义的(即“应强调此文本”)。
在现代网络浏览器的上下文中,很难看出区别(它们似乎都产生了相同的结果,对吧?),但请考虑为视障人士设计的屏幕阅读器。如果屏幕阅读器遇到 标记,它不知道该怎么做。但是,如果遇到 标签,它就知道其中的任何内容都应该向听众强调。在其中你会得到实际的区别。
<b> and <i> are explicit (i.e. "make this text bold"),
嗯。官方 HTML5 文档另有说明。需要引用吗?
<i>
、<b>
、<em>
和 <strong>
标记传统上具有代表性。但在 HTML5 中,它们被赋予了新的语义。
<i>
和 <b>
用于 HTML4 中的字体样式。 <i>
用于斜体,<b>
用于粗体。在 HTML5 中,<i>
标签具有“alternate voice or mood”的新语义含义,<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>
通过字体样式(或者说浏览器语调,或者你有什么)决定语义含义在呈现(或说出)文本时确定。
如果您愿意,您可以将其视为“物理”字体样式和“逻辑”样式之间的区别。稍后,您可能希望更改 <strong>
和 <em>
文本的显示方式,例如,通过更改样式表中的属性以添加颜色和大小更改,甚至完全使用不同的字体。如果您使用“逻辑”标记而不是硬编码的“物理”标记,那么您只需在样式表中的每个位置更改显示属性,然后所有引用该样式的页面工作表会自动更改,而无需对其进行编辑。
很流畅吧?
这也是为段落、表格单元格、标题文本、标题等定义子样式(使用文本标签中的 style=
属性引用)以及使用 <div>
标签的基本原理。您可以在样式表中为您的逻辑样式定义物理表示,并且更改会自动反映在引用该样式表的网页中。想要源代码的不同表示?为您的“代码”样式重新定义字体、大小、粗细、间距等。
如果您使用 XHTML,您甚至可以定义自己的语义标签,并且您的样式表会为您完成到物理字体样式和布局的转换。
<b>
和 <i>
的呈现方式。很流畅吧?
b
和 i
没有任何代码。就像任何 HMTL 标签一样,它们具有默认的 CSS 样式,并且就像任何标签一样,您可以将其更改为您希望的样子。
实际上,我同时使用 和 正是出于此回复线程中提到的原因。有时,粗体字看起来会更好,但它在语义上并不一定比句子的其余部分更重要。这是我现在正在处理的页面中的一个示例:
“检索所有关于长曲棍球的书籍。”
在那句话中,“all”这个词非常重要,而“lacrosse”则不太重要——我只是想让它加粗,因为它代表一个搜索词,所以我想要一些视觉上的分离。如果您正在使用屏幕阅读器查看该页面,我真的认为不需要特意强调“曲棍球”这个词。
我倾向于想象大多数 Web 开发人员都使用其中之一,但两者都很好——正如某些人所声称的那样, 绝对不会被弃用。对我来说,这只是视觉吸引力和意义之间的一条细线。
只有在使用 CSS 样式类出于任何原因不方便或不可能时才使用它们(例如博客系统,只允许在帖子中使用一些标签并最终嵌入样式)。另一个原因是支持非常旧的浏览器(某些移动设备?)或原始搜索引擎(为 <b>
或 <strong>
标签提供分数,而不是分析 CSS 样式)。
如果您可以定义 CSS 样式,请使用它们。
对于使用 <b>
标记的粗体文本
对于使用 <strong>
标记的重要文本
对于使用 <i>
标记的文本斜体样式
对于使用 <em>
标记的强调文本
<b>
和 <i>
,没有实际的语义含义(如 @splattne 指出的)是真的,很久之前。在现代 HTML5 (<!DOCTYPE html>
) 中,它们确实有意义。查看以下链接。
语义(来自 MDN)
:Bring Attention To element 关键字在摘要产品名称中。
摘要中的关键字
产品名称。
<p>Here at company XYZ, we use <b>HTML</b> and <b>Javascript</b>.</p>
:惯用语文本元素 替代语音或语气 分类名称(例如属和种“智人”) 来自另一种语言的惯用术语(例如“等”) 技术术语
另类的声音或情绪
分类名称(例如“智人”属和种)
来自另一种语言的惯用术语(例如“等”)
技术词汇
<p>I <i>did</i> tell him, to arrive on time for the meeting.</p>
与
认识到这两者在 HTML5 中都是有效的语义元素可能会有所帮助,并且巧合的是,它们在大多数浏览器中都具有相同的默认样式(粗体)(尽管一些较旧的浏览器实际上在 <strong>
下划线)。每个元素都旨在用于某些类型的场景,如果你想加粗文本进行装饰,你应该实际使用 CSS font-weight 属性。 source
与
<em>
元素表示其内容的强调重点,而 <i>
元素表示从普通散文出发的文本。 source
我的 2 美分
我个人更喜欢 <b>
和 <i>
而不是 <strong>
和 <em>
。
从开发人员的角度来看,它们更短,它们的语义也很有意义。我不知道今天的屏幕阅读器是否可以使用它们。如果没有,我想他们最终会的。 A18n 是一个很难的话题,我只是按照文档的引导。 MDN 说我可以使用它们,所以我这样做了。
问:strong、b、bold、em、i 的区别?
答:这些是内联属性。
强:用于以粗体显示文本或在语义上突出显示它。
粗体或 b:这个粗体标签只是传统上以粗体样式设置的偏移文本。
em:<em>
标签在语义上强调重要的词。
i : <i>
标记只是偏移了通常以斜体样式设置的文本。
注意:您应该使用 <strong></strong>
和 <em></em>
标记它们有意义的名称来说明内容的类型。语义标签也有助于 SEO。
应避免使用 <b>
和 <i>
,因为它们描述了文本的样式。相反,请使用 <strong>
和 <em>
,因为它们描述了文本的语义(含义)。
与 HTML 中的所有内容一样,您应该考虑的不是您希望它的外观,而是您的实际含义。当然,它对你来说可能只是粗体和斜体,但对屏幕阅读器来说却不是。
“它们具有相同的效果。但是,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
HTML 格式化元素:
HTML 还定义了用于定义具有特殊含义的文本的特殊元素。 HTML 使用 和 等元素来格式化输出,例如粗体或斜体文本。
HTML粗体和强格式:
HTML 元素定义粗体文本,没有任何额外的重要性。
<b>This text is bold</b>
HTML 元素定义了强文本,增加了语义“强”的重要性。
<strong>This text is strong</strong>
HTML斜体和强调格式:
HTML 元素定义斜体文本,没有任何额外的重要性。
<i>This text is italic</i>
HTML 元素定义了强调的文本,并增加了语义重要性。
<em>This text is emphasized</em>
The HTML <b> element defines bold text, without any extra importance.
The HTML <i> element defines italic text, without any extra importance.
嗯。官方 HTML5 文档另有说明。需要引用吗?
您通常应尽量避免使用 <b>
和 <i>
。在创建 CSS 之前的早期 HMTL 版本中,它们被引入用于布局页面(改变它的外观),例如同时删除的 font
标记,主要是为了向后兼容而保留,因为一些论坛允许内联 HTML 和这是更改文本外观的简单方法(例如使用 [i]
的 BBCode,您可以使用 <i>
等等)。
自从创建 CSS 以来,布局实际上不再应该在 HTML 中完成,这就是首先创建 CSS 的原因(HTML == 结构,CSS == 布局)。这些标签将来也可能会消失,毕竟如果您需要“无意义”的字体变体,您可以使用 CSS 和 span
标签使文本变为粗体/斜体。 HTML 5 仍然允许它们,但声明以这种方式标记文本没有意义。
另一方面,<em>
和 <strong>
仅表示“强调”或“强烈强调”某些内容,它完全开放给浏览器如何呈现它。默认情况下,大多数浏览器会将 em
呈现为斜体,将 strong
呈现为标准建议的粗体,但它们并非被迫这样做(它们可能使用不同的颜色、字体大小、字体等)。您可以使用 CSS 以您希望的方式更改行为。例如,您可以根据需要将 em
设为粗体,将 strong
设为粗体和红色。
在 HTML Lang 中,这两个标签的用法如下:
simple text this is test text normal text
simple text this is important textwith normal text
这两个 HTML 标签之间的主要区别在于粗体使文本仅在视觉上看起来粗体,而强烈的象征意义也将相应的文本视为必不可少的,并表明它是一个清晰的单词或文本部分。
这种差异是由于 HTML 代码区分符号和物理视觉 html 标记这一事实。前者指的是相关领域的含义,后者仅仅定义了浏览器中的光学显示。
<strong>
和 <em>
是抽象的(这是人们说它是语义的意思)。 <b>
和 <i>
是使某些东西“强大”或“强调”的特定方式
比喻:
<strong>
到 <b>
和 <em>
到 <i>
作为
“车辆”是“吉普车”
我们将 <strong>
标记用于对 SEO 具有高优先级的文本,例如产品名称、公司名称等,而 <b>
简单则使其粗体。
同样,我们使用 <em>
表示对 SEO 具有高优先级的文本,而 <i>
使文本简单地斜体。