kbd和code标签有什么区别?

4
我不认为HTML5的规范中会引入重复的标签来执行相同的操作。我需要知道,<kbd><code> 标签之间在实际和假设情况下有什么区别?
这个演示表明它们具有相同的效果!

在这里的编辑器中尝试使用<kbd>标签。 - Mat
https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/kbd, https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/code - PeeHaa
@Mat 当然,我试过了,发现它已经被样式化了。不过,code标签也可以被样式化。 - SaidbakR
2
是的,<span> 标签也可以被样式化,其他标签也一样。我不太明白你的意思。它们应该具有不同的语义,仅此而已。 - Mat
@Mat 不过, span 默认情况下不会改变某些特性。 - SaidbakR
显示剩余2条评论
2个回答

5

不清楚你在询问什么,但是你可以在HTML5规范中找到所有的差异和相似之处。例如:

含义

kbd元素

代表用户输入[...]

code元素

代表计算机代码片段[...]

内容模型、属性等

二者相同。都是流内容 / 短语内容 / 可触知内容。两者都有短语内容内容模型。两者只能拥有全局属性、相同的ARIA角色等。

样式

它们具有相同的默认样式

code, kbd, samp, tt { font-family: monospace; }

1
为了让我的问题更清晰,我已经提出了一个假设性的目的,即引入两个或多个标签来执行相同的操作。换句话说,在使用这两个标签时,HTML文档的可用性有何不同?或者为什么我应该决定使用kbd而不是code,反之亦然? - SaidbakR
1
@sємsєм:那么,我的答案中的“含义”部分就适用了:这两个元素具有不同的含义,它们用于不同的事情。但这显而易见,不是吗?-- 它们本身并没有“做”什么,换句话说,这取决于用户代理是否以及如何使用这些元素。 - unor
1
我这样想,是因为我不知道如果错误地选择了其中之一,会有什么得失。从可用性的角度来看,它们是完全相同的。 - SaidbakR
@sємsєм:那么,您的HTML5可能就不正确了。因此,您的页面可能会因为某些使用/解释您的kbd和/或code标记的用户代理而出现问题。 - unor
@unor,你能举几个用户代理处理 kbdcode 不同的方式的例子吗? - user31782

4

默认情况下,两者显示相同,所有用户代理都这样做吗? - PeeHaa
@PeeHaa 我认为是这样,只要所有浏览器都正确遵循规范。基本上,默认情况下每个都显示为系统字体。 - Charlie74
规范中好像没有关于样式的内容? - PeeHaa
没错,需要什么样的样式完全由Web开发人员决定。浏览器将为每个应用默认样式,通常是等宽字体系统。 - Charlie74
@Charlie74:kbd 不仅仅是用于 键盘 输入,它也适用于一般的用户输入。(在这里查看关于其在 Stack Exchange 上使用的 元讨论 - unor
@unor 这是一个很好的观点,谢谢... 我通常认为它是键盘命令,但规范确实指定了“用户输入”。 - Charlie74

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