<b>
和 <strong>
,<i>
和 <em>
之间有什么区别?在什么情况下应该使用它们?<strong>
然而,它表示应该如何理解某些内容。“Strong”在浏览器中可能(并经常)意味着“bold”,但在像Jaws(盲人)这样的语音程序中,它也可能意味着更低的音调,或者在Palm Pilot上用下划线表示(因为你不能使一个粗体变得更粗体)。
HTML从来不是关于样式的。搜索一些"Tim Berners-Lee"和"语义网"相关的内容。<strong>
是语义化的,它描述了它所包含的文本(例如,"这段文本应该比你显示的其他文本更加强调"),而不是描述它所包含的文本应该如何显示(例如,"这段文本应该是粗体")。
b
和i
标签赋予了新的语义含义。当你需要突出某段文字或者将正常文本偏移时,应该使用这两个标签(而不是使用em
来表示强调、用strong
表示重要性,或用mark
表示相关性)。b
用于关键词、产品名称、可操作性文字等,而i
则用于技术术语、思想、短语等。但在我个人看来,这两者之间需要有更大的区别。 - chharvey<b>
曾经真的用来设置样式吗? - Minh Nghĩa<strong>
和 <em>
可以为您的文档添加额外的语义含义。它们也可以给您的文本添加加粗和斜体风格。
当然,您可以使用 CSS 覆盖它们的样式。
<b>
和 <i>
只适用于字体样式,不应再使用。(因为您应该使用 CSS 进行格式化,如果文本真的很重要,那么您可能会将其设置为“strong”或“emphasised”!)
希望这有意义。
我要冒险发表一个历史和实际的热点观点:
是的,根据规范,HTML4中<strong>
具有语义意义,而<b>
则具有严格的展示意义。
是的,随着HTML5的出现,新的语义意义略有不同的b
和i
被介绍了。
是的,W3C建议——基本上——简而言之,请勿使用b和i。
您应该始终记住,b元素的内容可能并非始终为粗体,i元素的内容可能并非始终为斜体。实际样式取决于CSS样式定义。您还应该记住,在某些语言的内容中,粗体和斜体可能不是首选样式。如果有更详细和相关的标签可用,则不应使用b和i标签。
但是:
真实世界的互联网存在大量已经存在但永远不会更新的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 是相同的吗? 不是。 它们在几乎所有情况下可能都将被视为相同直到现代文明的崩溃? 我认为是。
(以下都是来自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获取原始内容)
<i>
和<b>
标签比<em>
和<strong>
标签消耗更少的带宽。<i>
和<b>
标签需要更少的输入。
<em>
和 <strong>
标签会在编辑器屏幕上显示更多的文本。如果这些文件大小相同的话,那么程序员更喜欢较小的源文件。(而且实际上它们是相同的。是的,有一些“技术”差异(<i>
咳嗽</i>
, 呃,请原谅),但这在很大程度上是虚假的。)<b>
和<i>
都与样式相关。但是,官方的HTML5文档表示不同。需要引用吗? - user719662<b>
和 <i>
是字体样式元素,而 <em>
和 <strong>
是短语元素。有什么建议可以改进吗?为了完整起见,也因为您的评论没有包含引用,HTML 5.2 中所有这些元素都在 phrasing content 中描述。 - Kariem虽然使用 <b>
和 <i>
标签在语义上不如使用 <strong>
和 <em>
正确,但是对于用户编写的内容来说,使用前者也有明显的合理理由。
在这样的内容中,单词或短语可能会以粗体或斜体形式出现,而我们通常无法分析这种加粗或倾斜的语义推理。
此外,这样的内容可能会引用加粗和倾斜的单词和短语来传达特定的含义。
例如,英语考试题目要求学生替换加粗的单词。
b或i表示您希望文本以粗体或斜体呈现。 strong或em表示您希望文本以用户理解为“重要”的方式呈现。默认情况下,将strong呈现为粗体,将em呈现为斜体,但某些其他文化可能使用不同的映射。
与程序中的字符串一样,b和i是“硬编码”的,而strong和em则是“本地化”的。
<i>
、<b>
、<em>
和 <strong>
标签在传统上是代表性的。但是在 HTML5 中,它们被赋予了新的语义含义。
在 HTML4 中,<i>
和 <b>
用于字体样式。其中,<i>
用于斜体,<b>
用于加粗。在 HTML5 中,<i>
标签具有新的语义含义,表示“替代的语气或心情”,而 <b>
标签则表示风格上的偏移。
<i>
标签的示例用途包括 - 分类学指定、技术术语、来自其他语言的习惯用语、音译、思想、西方文本中的船名等。例如 -
<p><i>I hope this works</i>, he thought.</p>
< 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>
表示重要性的强调。
在下面的例子中,在读取单词before时应该有一种语言上的变化...
<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/zh-CN/docs/Web/HTML/Element/b
https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/i
https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/em
https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/strong
<em>
,<strong>
,<b>
,<i>
。 - totymedli