我正在考虑编写代码来生成可能具有重复属性的 HTML 标记,如下所示:
<div data-foo="bar" class="some-class" data-foo="baz">
这是合法的 HTML 吗? data-foo
中的一个是否优先于另一个?我可以依靠半现代浏览器(IE >= 9)来解析它而不会窒息吗?
还是我要在这里做一些非常愚蠢的事情?
最佳答案
在一个元素中两次具有相同的属性名称是无效的。对此的权威引用有些复杂,因为旧的 HTML 版本名义上是基于 SGML 的,而对 SGML 标准的规范性引用暗示了该限制。在 HTML5 PR 中,第 8.1.2.3 节 Attributes明确地说:“在同一个开始标记上绝不能有两个或更多属性,它们的名称是彼此不区分大小写的 ASCII 匹配项。”
实际发生的情况是后一个属性被忽略了。好吧, future 的浏览器可能会不这样做。在 DOM 中,属性作为元素节点的属性出现在 attributes
对象中,因此没有自然的方式来存储两个值。
关于html - 一个 HTML 元素可以两次具有相同的属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26341507/