874
4

23 回答 23

1144

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

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

考虑三种不同的情况:

  • 网络浏览器
  • 盲人
  • 手机

“Bold”是一种风格——当你说“bold a word”时,人们基本上知道这意味着在字母周围添加更多,比如“ink”,直到它们在其他字母中更加突出。

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

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

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

HTML 从来都不是关于样式的。搜索“ Tim Berners-Lee”“语义网”。 <strong>是语义的——它描述了它所包围的文本(例如,“这个文本应该比你显示的其余文本强”),而不是描述它所包围的文本应该如何显示例如,“这个文本应该是粗体”)。

于 2008-11-07T11:07:32.323 回答
258

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

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

于 2008-11-07T10:59:58.643 回答
24

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

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

<b><i>另一方面,仅应用字体样式,不应再使用。(因为您应该使用 CSS 进行格式化,并且如果文本确实很重要,那么您可能会使其“强”或“强调”!)

希望这是有道理的。

于 2008-11-07T11:00:07.003 回答
8

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

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

<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为原件)

于 2013-11-14T20:57:40.233 回答
7

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

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

于 2008-11-07T11:11:51.800 回答
6

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

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

此外,这样的内容可以指代粗体和斜体字和短语以传达特定含义。

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

于 2008-11-09T02:18:43.733 回答
6

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

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

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

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

于 2014-09-04T17:46:00.230 回答
5

我将在这里冒险历史和实际的热门话题:

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

是的,当 HTML5 出现时,为b和引入了稍微不同的新语义含义i

是的,W3C 推荐——基本上——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 的站点之一,它注意确保 b 和 strong 被视为相同

世界上已经有如此庞大的 HTML 海洋可以满足这种期望,我只是无法想象它b会被贬低,strong或者浏览器会在默认情况下开始以不同的方式显示它们。

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

于 2020-07-14T21:35:32.960 回答
2

bi表示您希望将文本呈现为粗体或斜体。strongem表示您希望以用户理解为“重要”的方式呈现文本。默认情况下,将 strong 渲染为粗体,将 em 渲染为斜体,但某些其他文化可能使用不同的映射。

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

于 2008-11-07T11:01:40.120 回答
2

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

在现代网络浏览器的上下文中,很难看出差异(它们似乎都产生相同的结果,对吧?),但想想为视障人士设计的屏幕阅读器。如果屏幕阅读器遇到 <i> 标记,它不知道该怎么做。但是,如果遇到 <em> 标签,它就知道其中的任何内容都应该向听众强调。在其中你会得到实际的区别。

于 2008-11-07T11:04:47.883 回答
2

<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

于 2017-04-18T16:01:04.403 回答
1

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

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

很流畅吧?

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

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

于 2008-11-09T03:53:19.597 回答
1

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

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

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

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

于 2010-03-05T20:59:25.347 回答
1

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

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

于 2011-12-15T13:48:26.887 回答
1

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

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

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

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

于 2020-02-06T06:57:35.073 回答
1

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

语义(来自 MDN)

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

<b>对比<strong>

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

<i>对比<em>

元素表示其内容的<em>强调重点,而<i>元素表示从普通散文引出的文本。来源

我的 2 美分

我个人更喜欢<b>and <i>over <strong>and <em>

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

于 2021-07-28T17:16:45.797 回答
0

<b>并且<i>应该避免,因为它们描述了文本的样式。相反,使用<strong>and<em>因为它描述了文本的语义(意义)。

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

于 2008-11-07T11:01:14.567 回答
0

“它们具有相同的效果。但是,XHTML 是一种更简洁、更新的 HTML 版本,建议使用<strong>标签。强更好,因为它更易于阅读 - 它的含义更清晰。此外,<strong>传达一种含义 - 显示文本strong - while <b>(for bold) 传达一种方法 - 将文本加粗。使用strong,如果您使用 CSS 样式表来更改使文本变得强大的方法,您的代码仍然有意义。

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

谷歌迪克西特:

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

于 2008-11-07T11:01:27.530 回答
0

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

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

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

于 2008-11-07T11:18:26.547 回答
0

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>
于 2016-06-11T14:19:01.777 回答
-1

在 HTML Lang 中,这两个标签的用法如下:

simple text this is test text normal text



simple text this is important textwith normal text

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

这种差异是由于 HTML 代码区分符号和物理视觉 html 标记这一事实。前者指的是相关领域的含义,后者仅仅定义了浏览器中的光学显示。你可以从这里检查这个

于 2020-08-18T10:13:58.913 回答
-2

<strong>并且<em>是抽象的(这是人们说它是语义的意思)。 <b>并且<i>是使某些东西“强大”或“强调”的特定方法

比喻:

既是<strong>为了<b><em>是为了<i>

作为

“车辆”是“吉普车”

于 2015-09-10T21:15:17.993 回答
-5

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

同样,我们使用<em>对 SEO 具有高优先级的文本,同时<i>使文本简单地斜体。

于 2011-04-07T05:44:08.470 回答