3 回答
span
没有任何意义。从语义上讲,是否存在span
元素并不重要。所以问题不应该是何时使用b
vs.span
,而应该是:我应该使用b
吗?(在很多情况下,您可能希望在b
不需要样式挂钩的情况下使用,因此绝对不需要span
ifb
不合适。)
为了决定是否b
合适,我认为想象一个使用语义标记的智能用户代理可能会有所帮助。如果每个人都能正确使用 HTML5,那么这样的用户代理可以从用 标记的内容中推断出b
什么?
我认为定义中提到的示例用例给出了一个很好的主意:
- 文档摘要中的关键词
- 评论中的产品名称
- 交互式文本驱动软件中的可操作词
- 一篇文章
→总结:关键词。
因此,例如,这样的用户代理可以提取段落/部分中的所有关键字并以某种方式呈现它们,因此您可以决定是否要阅读它。
在食谱中,它可能是所有成分。在您的问题中,它可能是“b”、“span”和“HTML5”。在产品页面上,它可以是产品名称、主要功能和制造商。想想meta
-keywords
,但不是整个文档(与link
vs.相同a
)。
不要让您被造型需求误导。虽然在许多情况下,粗体字可能是一种合适的样式,但大多数时候我从未对b
.
第一个例子相当简单。您正试图让“CS 101 Final”吸引眼球,因为它比“Your score for”文本更重要。所以那是
Your score for <strong>CS 101 Final</strong> is 42%.
使用<b>
,您不会试图吸引眼球。您希望整个文本被均匀地阅读,但您将某些单词和短语标记为对读者有用(实用目的)。坦率地说,这并没有太多用途。规范给出了冒险游戏和报告中的关键字示例,但要找到很多用途并不容易。
第二个例子更棘手。在这里,“答案”在风格上被抵消了。“答案”这个词绝对不比实际的答案文本更重要,也不需要出于任何其他原因引起读者的特别注意。它只是被标记为与实际答案文本不同。然而,规范在“没有专用元素的常用习语”部分中建议使用<b>
来标记对话中的说话者,并且使用它可以被视为与此类似。但基本上它只是样式,所以<span>
有一个类可能是最好的选择。
我使用什么标准来决定 ab 或 span 标签?
从上面可以看出,这是一个淘汰的过程。是合适<strong>
还是合适<em>
?<cite>
是的 - 使用它们。否 - 是否<b>
合适<i>
?是的 - 使用它们。没有然后使用<span>
我的个人设计指南是:
<B>
(示例)应仅用于装饰目的。
也就是说,内容不会或多或少地从较重的字体中获得任何好处,但如果有的话,在那个地方可能会看起来更好。