原则上不是一个html页面 id不重复吗?
看这个 ID 用来干啥。
如果是用于文档锚点、document.getElementById
等等,那只会认第一个。这也是为啥要避免 ID 重复。
W3C 在 DOM 规范中是如此描述的:
If more than one element has an ID attribute with that value, what is returned is undefined.
言外之意是你可以重复,但重复有什么后果,不做规定,所以你得到什么奇怪的结果都有可能。
P.S. 对于 XHTML 而言,ID 是一定不能重复的,因为这是 XML 的语法要求。但绝大多数网页都不是基于 XHTML 来书写的。
如果仅仅是用于 CSS 选择器,那么 ID 可以重复,CSS 会匹配所有符合条件的元素。
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答1.5k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
Google 的项目很多都是用的 Web Component。
Youtube看起来也是Web Component,但是不像是 Lit / Polymer 框架实现的,估计是 Google 内部没有公开的Web Component 框架。
从下面这个方法可以看到这是一个自定义标签。
另外 Chrome 浏览器的下载页面用的是 Polymer 实现的。
另外 id 这里没有看出来什么特别的,不过 id 其实也不是完全不能重复,主要是看网站怎么设计,优势后并以一定要遵从大多数人的想法。