<kbd> 标签有什么意义?

Nic*_*ick 5 html css

<kbd>我刚刚第一次遇到这个标签,除了默认文本为等宽字体之外,它似乎没有做任何事情,这可以通过使用 CSS 将字体更改为等宽字体来完成。该标签是否<kbd>具有一些使其实用的底层逻辑,类似于<time>标签如何将代码转换为机器可读的?

传统上,我看到通过标签完成文本内更改<span>,并且该<kbd>标签显示的<span>输出与带有font-family: monospace. <kbd>如果只是改变字体,标签还有什么意义呢?我在 SO 和其他网站上搜索了解释,但除了字体的变化之外没有找到任何东西。

span {
  font-family: monospace;
}
Run Code Online (Sandbox Code Playgroud)
<p>Please press <span>Ctrl</span> + <kbd>Shift</kbd>.
Run Code Online (Sandbox Code Playgroud)

Tem*_*fif 5

kbd标签更多的是语义标签,而不是用于样式的标签。默认情况下,UA 使用等宽字体来设置其样式,但其目的是

表示用户输入(通常是键盘输入,尽管它也可用于表示其他输入,例如语音命令)。参考

MDN页面中您还可以阅读:

HTML 键盘输入元素 ( <kbd>) 表示一段内联文本,表示来自键盘、语音输入或任何其他文本输入设备的文本用户输入。按照惯例,用户代理默认使用其默认等宽字体呈现元素的内容<kbd>,尽管 HTML 标准并未强制要求。

  • @Nick,关键是 HTML 和 CSS 是两个不同的世界,即使总是一起使用,我们确实可以使用 CSS 来复制常见标签的行为,但想想屏幕阅读器,它将简单地读取 HTML 代码和语义标签,他们不关心CSS。同样的逻辑也适用于搜索引擎,它对 HTML 代码比 CSS 更感兴趣。我们倾向于只考虑视觉效果,因此我们只使用“div”“span”并对它们进行样式设置,但代码将缺乏意义。 (2认同)