在Web标准方面,使用<strong>还是CSS类来加粗文本更好?

4

最近,我的经理在工作中批评了我使用HTML <strong> 标签来加粗一些文本的做法。他指出,如果我想要实现美观的外观并对我的网页应用一些视觉强调,我应该使用CSS类代替 <strong> 标签,例如这个类:

.heavytext {
  font-weight: bold;
}

这是一个网页上使用了 <strong> 标签的文本。

<li>The hirer agrees <strong>Any damaged occuring is...</strong></li>

这是一个网页上使用CSS类的文本,它在元素内。
<li>The hirer agrees <span class="heavytext">Any damaged occuring is...</span></li>

我想知道什么是更好的实践方法。在这种情况下,我认为应该使用<strong>标签强调屏幕阅读器的文本,因为这不是为了视觉效果。该文本是一些条款和条件的一部分,内容是“由于设备的误用造成的任何损坏都由客户负责,并将对损坏进行收费。”


非常类似于https://dev59.com/9G445IYBdhLWcg3wTIVf。 - j08691
b 是一个内联元素,浏览器为其定义的样式仅为 b {font-weight:bold;},最终转化为 CSS 样式,因此为什么要添加类来使文本加粗呢? - Deepak Kamat
雇主同意的内容比他们同意的事实更重要吗?我认为不是(虽然我不是律师),所以你的经理可能是对的,不鼓励在这种特定情况下使用<strong>标签。 - Alohci
3个回答

5

你不应该依赖标签来应用特定的样式。没有标准可以应用到标签上,这可以通过CSS进行更改。标签具有语义价值而不是呈现价值。

对于你的具体问题“什么是更好的做法”的答案是“取决于情况”。

  1. 如果你想在GUI浏览器中让文本以粗体出现,请使用CSS
  2. 如果某些文本相对于周围文本很重要,请使用<strong>标签

这些并不是互斥的。


0

正如你所看到的,没有人真正就“标准”达成一致。

但这归结于内容的意图。

如果您想要改变文本的外观,只是为了改变它的外观,那么CSS是最好的选择。 如果您想要改变文本所在的语义,那么请使用标签。

在这种情况下,答案可能是“两者都可以”。

回答“两者都可以”并没有任何问题。

事实上,为了让你们两个都正确,说“两者都可以”也没有任何问题:

<strong class="heavy-text">if you break it, you bought it</strong>


strong.heavy-text { font-weight: bold; }

多余的?
如果这是你对它做出的唯一更改,那么是的...

但现在你有了一种强调文本的方式,你认为它应该是这样的,以便于语义和可访问性,同时也使用了适当的钩子进行样式化,以便于未来的修改。

如果决定不对该特定段落施加任何音频/文本权重,高于其他任何段落,则只需使用 <span class="heavy-text"> 或其他类似的标签。


我只是想知道对于<strong><span class="heavy-text">,是否有任何SEO收益。一个人可以始终为strong设置全局CSS,而不是用类进行加权。出于清洁的标记考虑,我选择在内容中使用<strong>(例如段落内的小片段),并为实际对象(即<p>本身)使用类。 - Casey Dwayne
据我所知,将内容包裹在<strong></strong>中并不会比将所有内容都包裹在<h__>标签中获得更多的SEO提升。CSS并不是只适用于某一部分而不是另一部分,这是组织上的偏好。使用strong.heavy-text的一个好处是对于非常老的浏览器来说可能会更好。微数据可以帮助SEO,但无论是<strong>还是<span>都没有关系。 - Norguard

-4

严格来说,您应该使用CSS。话虽如此,<strong>基本上是一个<span>,在浏览器的默认样式表中具有font-weight:bold

个人而言,我喜欢只使用<b>。它更简单、更清晰,对于屏幕阅读器比某些晦涩的类名更有意义。


2
应该尽量避免使用<b>标签。强烈建议使用<strong>或CSS。HTML5标准特别反对使用<b>标签。 - Kevin Lynch
2
如果您想强调文本,以便屏幕阅读器等知道它是强调的,请使用 strong 或 em。b 只是视觉效果,没有语义意义,与使用 CSS 相同。 - user1950929
在这种情况下,我认为应该使用<strong>标签强调屏幕阅读器中的文本,因为这不是为了视觉效果。该文本是某些条款和条件的一部分,内容为“由于设备误用造成的任何损坏都由客户承担责任,并将收取损坏费用”。 - user1554264

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接