在HTML和SVG中使用两个相同的ID是否符合规范?
你提到的写法不符合前端HTML代码规范。
- HTML标准明确规定,
id属性在整个HTML文档内必须全局唯一,不存在「不同类型元素、不同嵌套层级的元素可以共用相同id」的例外规则,即使是SVG内部<defs>标签中定义的元素id,也属于全局id命名空间,同样要遵守唯一性要求。 - 重复id会直接导致多类功能异常:执行
document.getElementById('main')时只会返回第一个匹配到的div元素,无法选中你定义的path节点;CSS的#main选择器在不同浏览器中可能出现渲染不一致的问题;同时页面锚点跳转、无障碍屏幕阅读器识别等原生功能也会受到影响。
优化建议:如果需要保留标识,可以给SVG内部的id增加专属前缀区分,比如改为id="svg-main",非唯一标识的场景优先使用class属性。
内容的提问来源于stack exchange,提问作者AGamePlayer
相关产品推荐
相关产品推荐

