过时的代码: <b> vs style="font-weight:bold;"

10

我一直使用<b>标签来加粗文字,因为很久以前我就是这样学的。但现在我的IDE经常会提示我<b>已经过时了,要使用CSS样式。假设他们想让我使用<div style="font-weight:bold;">粗体文本</div>。我的IDE给出的信息有多重要?我是否应该回去修改所有的<b>标签为样式?

下面是两种情况的示例。能否有人解释一下两者之间的区别以及为什么<b>现在已经被弃用了?

<b>Bold Text</b>

对比。

<div style="font-weight:bold;">Bold Text</div>

如果浏览器上关闭了 CSS,那么是不是使用 <b> 更好,因为它仍然可以正确显示?


1
很确定,如果有人像你建议的那样关闭了CSS,他们无法浏览互联网。 - Josh Crozier
7
请参考http://www.w3.org/International/questions/qa-b-and-i-tags以获取更一般的问题回答。回答您具体的问题:谁会查看你的代码?是在浏览器中吗? - dash
2
@JoshC 不是真的...我刚刚关闭了样式,但仍然能够浏览Stack Overflow。 - Arian Faurtosh
如果有人不想要样式,那么他就不想要“b”标签。但是如果你想使用它,可以使用<strong>标签。 - Daniel
2
@JoshC 说得好。你会认为谷歌的网站即使没有 CSS 也能正常工作...尤其是因为 CSS 应该只用于样式而不是功能。 - Arian Faurtosh
显示剩余4条评论
5个回答

22
正确的问题是:“哪种标记最能描述我的内容?” 让我们从<b>标记开始(该标记没有被弃用):
引用:

b元素表示一段文本,它在正常散文之外以样式上的偏移呈现,而不传达任何额外的重要性,例如文档摘要中的关键词,评论中的产品名称或其他典型的粗体文本。

...

如果有更具描述性和相关的标记可用,则不应使用b和i标记。如果您确实使用它们,通常最好添加描述标记意义的类属性,以便可以区分一个用途与另一个用途。

...

思考b或i元素实质上就是带有自动回退样式的span元素可能会有所帮助。就像span元素一样,如果它们要有用,这些元素通常受益于类名称。

http://www.w3.org/International/questions/qa-b-and-i-tags 相比之下,<strong>有更具体的目的:
引用:

strong元素表示具有强烈重要性的文本范围。

http://www.w3.org/TR/html-markup/strong.html 例如:
<p><strong>Warning.</strong> Here be dragons.</p>

在这里我们强调单词“warning”以突出其重要性。

但不是:

<p><strong>Item 1:</strong> Foo, bar, and baz.</p>

"Item 1"不是要强调的,因此<strong>标签是错误的。此外,整个结构可能有更好的表达方式。

如果文本的含义非常重要,那么使用<strong>是恰当的(就像这行一样)。

也许您只是想为了风格目的而使用更粗的字体,而文本没有特定的含义。在这种情况下,<strong><b>都可能不合适。

<span class="product-name">Hello World</span>

.product-name { font-weight: bold; }

总之:

  • 使用描述内容的标记。
  • 不要使用内联样式(使用外部样式表)。
  • 不要根据视觉效果来命名样式(例如,将样式命名为“bold”是一个不好的选择)。

如果有人在浏览器中关闭了css,那么使用<b>会更好吗?因为它仍然会正确显示。

不是。使用适当的标记来完成工作。使用您网站的视觉表示形式且主动禁用样式表的人相对较少,但非视觉消费者主要关心您文档的结构。 "非视觉消费者" 可能是解析您内容的搜索引擎或屏幕阅读器应用程序。

额外阅读材料:


1
在HTML5规范中,<b><i>与它们在HTML4中的用法相比已经被“重新分配”了。而且,在一段时间里,它们实际上在HTML5中已被弃用。 - Sean Ryan

4
你应该使用<strong>代替<b>。如果某一组文本总是需要加粗,并且你不想或者不能使用<strong>,那么你可以使用样式表(在单独的样式表中使用text-weight: bold)。但我只建议在已经为同一元素使用了其他样式时才这样做。

4
如果代码仍然能够工作,那么使用CSS并不是“必要的”。但是,这样做符合当前标准,使代码具有更长远的未来性。
区别在于使用CSS将样式与内容分离开来。``只是一种样式,不多不少。它紧密地将标记与样式耦合在一起。分离允许您以其他方式强调标记,而不总是使用粗体字。
“如果某人在浏览器上关闭了css,是否会更好呢?”不是,因为如果用户想要禁用样式,则您的``标记会破坏此操作,因为它混合了样式和内容。

0

如果你在谈论SEO

使用<strong>也应该是友好的SEO...(关注关键词)

这很重要!


-1

我发现使用<strong></strong>比使用<b>或内联样式更好。


你能详细说明一下你为什么这样认为吗? - EJoshuaS - Stand with Ukraine

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