【问题标题】:When is the best time to use <b> and <i> in lieu of <strong> and <em>, if ever?什么时候是使用 <b> 和 <i> 代替 <strong> 和 <em> 的最佳时间,如果有的话?
【发布时间】:2010-09-08 23:45:43
【问题描述】:

从语义上讲,在当今的网站(2008 年末)中是否有合适的地方使用粗体 &lt;b&gt; 和斜体 &lt;i&gt; 标签比使用更广泛的 &lt;strong&gt;&lt;em&gt; 标签更有用?

【问题讨论】:

    标签: html semantics


    【解决方案1】:

    几年过去了……

    HTML5 (W3C Recommendation) 中,这四个元素都没有被弃用/废弃。

    (非规范!)usage summary 列出了它们的用途:

    • strong:重要性

    • b:关键字

    • em:强调强调

    • i:替代语音

    当然,如果您想使用它们,请始终参考它们的规范定义(您可以通过单击元素名称找到它们)并验证它们是否适合您的情况。

    示例

    The b element could be used for keywords in a text,其中其他三个元素不合适:此类关键字不重读(em),也不偏移(i),也无需将它们与样板等区分开来. (strong).

    The i element could be used for scientific names in Latin,其中strongem 不合适。虽然b 似乎也很合适,但它的定义明确排除了i 处理的案例。

    当然,在某些情况下您会使用其中的几个元素。例如,学名也可以是文档中的关键字 (&lt;b&gt;&lt;i&gt;…&lt;/i&gt;&lt;/b&gt;)。

    【讨论】:

      【解决方案2】:

      从来没有。它们在 XHTML 2.0 中被删除,因为它们是表示标签。 CSS 应该用于粗体/斜体内容。

      编辑:如果您正在寻找一个纯粹的展示标签,这就是带有类和一点 CSS 的 SPAN 标签的用途。

      【讨论】:

      • @ceejayoz XHTML 2.0 已死!另外,根据下一个 HTML 规范 (HTML5) 你错了: 仍然存在,并且它们具有语义含义。
      • @abernier 这个答案是在 W3C 允许 XHTML2 过期前一年写的,HTML5 基本上弃用了旧的“粗体”标签,并用与“强”标签语义相似的标签取而代之,作为一种奇怪的舞蹈,意在继承现有的浏览器行为。
      • @ceejavoz see: whatwg.org/specs/web-apps/current-work/multipage/… 它并没有贬值,它更像是最后的手段,但含义是:“另一种声音或情绪,或以其他方式偏离正常散文”
      • 不过,关键是,他们基本上删除了旧的 b/i 标签,并创建了具有相同名称但实际语义含义的新标签。旧的标记含义 - 粗体和斜体 - 不再存在。
      【解决方案3】:

      正式地, 是“展示性的”,不应使用。虽然许多开发人员认为 是展示性的,但事实并非如此。它们通常分别以斜体和粗体显示,但 CSS 可以(并且应该在适当的情况下)改变重点和强度的显示方式。

      标签上的 css 也可以做类似的事情,许多人认为这是首选方法,但规范无法证实。

      【讨论】:

        【解决方案4】:

        有技术规则,但这是我的两条经验法则:

        1) 如果你写的东西,如果说出来,你会强调一个词, 是合适的。 (例如,“你必须是 sh*tting 我,Pyle!”)

        2) 如果您出于技术原因强调某个词,但不会在口语对话中强调该词,则 是合适的。 (例如,“他登上 RMS 泰坦尼克号并扬帆远航,再也见不到了。”)

        不过,不要漏掉像 这样的其他标签!

        【讨论】:

          【解决方案5】:

          虽然我一般会远离非语义标签,如 bistrongem 不是 bi 的直接替代品。

          我会使用bi,当它只是您要进行的演示,并且您要标记的内容没有语义意义时。例如,像 stackoverflow 这样的标志可以用stack&lt;b&gt;overflow&lt;/b&gt; 标记。 “溢出”部分在“堆栈”之上没有语义意义,但stack&lt;span class="overflow-logo"&gt;overflow&lt;/span&gt; 也没有提供任何东西。

          希望这会有所帮助。


          不确定如何发表评论(编辑:需要 moar karma!),但这是对 Erik 评论的回复。

          请阅读the HTML5 working draft。它很好地解释了何时使用b

          b 元素表示在风格上与普通散文不同但不传达任何额外重要性的文本范围,例如文档摘要中的关键词、评论中的产品名称或其他具有典型排版的文本范围演示文稿加粗。

          “溢出”在徽标中没有强调“堆栈”,因此用em 包裹“溢出”在语义上是不正确的。

          【讨论】:

          • 我不同意。我会将您的示例实现为

            stackoverflow

            。这是一个标题,重点是溢出。或者,您可以使用图像作为徽标,而只保留文字。
          • 我不知道 b 和 i 标签的这个规范。在那种情况下,我认为你是对的。虽然我不知道我是否同意他们在草稿中给出的例子。我认为这是一个更好的例子。
          【解决方案6】:

          可以说&lt;i&gt; 标签仍然有用:当表达一个物种的学名(又名拉丁名)时。按照惯例,物种的学名通常以斜体显示。 Example。在这种情况下使用&lt;em&gt; 在语义上是不正确的,因为人们并没有试图强调名称,而只是在视觉上区分它。使用&lt;span class="sci-name"&gt; 之类的东西可能更合适,但是当人们考虑到大多数科学名称是由italic languages 的单词(主要是拉丁语)组成时,&lt;i&gt; 标记就成为一种语义丰富且方便的解决方案。

          【讨论】:

            【解决方案7】:

            http://www.webmasterworld.com/forum21/7095-1-15.htm 上有一个很好的评论:

            “如果页面阅读器真的阅读每一个 &lt;strong&gt; 用强烈的声音标记,或 真的强调每个&lt;em&gt; 部分 一个页面,然后可怜的用户得到一个页面 定期对她或他大喊大叫 基础。

            我觉得这个问题真的是 不费吹灰之力。如果我设置粗体或 用于排版的斜体字体 只有,然后我使用&lt;b&gt;&lt;i&gt;。如果 有一个词或短语我想要 像我说话一样强调, 然后 - 只有这样 - 我才使用 &lt;strong&gt;&lt;em&gt;。”

            【讨论】:

            • 这就是 SPAN 的用途,而不是 B 和 I。
            【解决方案8】:

            根据HTML 5 spec&lt;b&gt;&lt;i&gt;在适当的时候使用

            On the i:

            [A] 一段以另一种声音或语气表达的文本,或以其他方式偏离正常散文,例如分类名称、技术术语、来自另一种语言的惯用短语、思想、船名或某些其他散文,其典型的排版呈现为斜体。

            On the b:

            [A] 一段在风格上偏离普通散文但不传达任何额外重要性的文本,例如文档摘要中的关键词、评论中的产品名称,或其他典型排版显示为粗体的文本跨度。

            一般来说,“在适当的时候”被认为是最后的手段,当所有其他语义选项都已用尽时。尽管它们可能是“表达性的”,但如果将它们分别视为斜体或粗体,肯定会损害它们的语义表亲 &lt;em&gt;&lt;strong&gt;

            【讨论】:

            • 你怎么可能用尽语义选项?具有“关键字”、“产品名称”等类别的 SPAN 将适用于所有示例情况。这就是 SPAN 标签的全部原因。
            • @ceejayoz 在我的回答中查看我的徽标示例。
            【解决方案9】:

            多年来,我一直在使用 来指示我网站上的关键词。我编写了一个小实用程序,它会爬取站点以查找 标记并将它们添加到索引中。当我想加粗一个单词而不将它添加到索引时,我使用 。我已经使用这个约定好几年了——现在退出已经太晚了。

            【讨论】:

              【解决方案10】:

              我认为当你试图让你的标记有意义时,这些很少有用。

              然而,有一些新标签产生了一些相同的结果,但提供了更多的语义价值。例如,当我提到一本书的名称时,我喜欢使用 标签,因为它仍然是斜体,但现在 HTML 包含了为什么的含义。

              还有许多其他语义标签也会影响此处列出的格式:

              http://www.w3.org/TR/xhtml2/mod-text.html

              【讨论】:

                【解决方案11】:

                用于所见即所得编辑器生成的标记。

                【讨论】:

                  【解决方案12】:

                  都不是语义标签,所以纯粹主义者会说它们不应该被使用。我认为它们的使用是合理的,例如将在线内容打印出来,其中文本以粗体或斜体作为惯例,而不是作为加强或强调内容的方式。

                  一个简单的例子是,如果您将一篇杂志文章放在网上,该文章按书名引用一本书:您可能希望将书名用斜体字表示,但斜体字不是为了强调,所以 标签会不合适。您可以在此处使用 ,但语义上的做法是使用类似 的内容,然后使用 CSS 将书名设为斜体。您引用的是标题,而不是强调,并且您不希望屏幕阅读器对标题进行口头强调。

                  我个人的意见是今天不要使用 ,但是当您除了粗体或斜体之外并不想做任何事情时,使用 作为它们的替代品同样适用不正确。

                  【讨论】:

                  • 在您的示例中,您实际上想要使用 。 :)
                  【解决方案13】:

                  每当你想把事情做错时......开个玩笑。

                  真正的答案是永远不会,这些标签已被W3C 弃用

                  【讨论】:

                  【解决方案14】:

                  标签没有语义,而 有。如果读者大声朗读文本块,它将对 标签做出反应,而 标签将被忽略,并被视为纯视觉元素。我倾向于将 视为已弃用。

                  【讨论】:

                    【解决方案15】:

                    为移动设备编写网站时。它们并不总是支持“最新和最伟大”的标准,在所有现代浏览器中都已贬值但并未删除,并且占用的空间和带宽更少(尽管理论上流是由网站或无线浏览器压缩的,但不能指望)。

                    -亚当

                    【讨论】:

                    • 您是否知道任何无法处理 STRONG 或 EM 标签的移动设备?
                    • 目前,不,但是即使每个仍在使用的移动设备都支持这些标签,关于带宽的问题仍然存在。在大多数情况下,这不会有用(压缩等),但对于迎合特定用户的特定网站 可能是正确的选择。
                    • 如果你有足够的 I/B 标签来产生带宽差异,即使在手机上,它要么是 a) 对于手机来说页面太长,要么 b) 你是将其他单词加粗,需要停止这样做。呵呵。
                    猜你喜欢
                    • 2016-12-08
                    • 2014-05-09
                    • 1970-01-01
                    • 2010-12-28
                    • 2017-07-16
                    • 2019-03-24
                    • 2011-01-15
                    • 1970-01-01
                    • 1970-01-01
                    相关资源
                    最近更新 更多