HTML5 - 同一元素有多个 ID?哈希使用的语言依赖 id?

HTML5 - multiple id's on same element? Language dependend id for hash usage?

HTML5 规范中关于多个 ID 的两个简单问题。

为什么一个元素不能有多个 id?重要的是不要重复 id,但是在元素和 id 之间有一个 "equivalence relation" 看起来很奇怪。如果没有真正的原因,并且是基于意见,请跳过它。如果有一些原因(javascript一对一关系,或者其他的,请与我分享!)。


我正在为某个页面做 SEO。该页面使用 id 来锚定页面的某些点,例如(这是一个愚蠢的例子,但它仅用于显示上下文):

<a href="#comment1">Take a look at the first comment</a>

我想要id="comment1"是多语言的,我只有一个通用模板。更重要的是,有时 id 用于样式,看起来像:

<article id="blog_latest">...</article>

但是,我想锚定到那篇文章,例如使用地址:

http://en.mysite.com/blog#latest_post
http://pl.mysite.com/blog#najnowszy_wpis

我该怎么办?


补充说明:

这很奇怪,但我认为:

这三个不能同时为真...是 W3C 的某个人遗漏了什么,还是我遗漏了什么? :)

我认为,你的第一个假设是不正确的。当然你可以使用 url 的散列值来滚动到一个锚点。大多数浏览器默认这样做,一些框架(如 backbone.js)也这样做。

这很好!因为它是 anchor 而不是 id! Anchor 和 id 仅共享 # 符号,但只是偶然。

因此,对于您问题的核心,您可以(并且可能应该)对页面的语言相关变体使用不同的锚点,并在您的 DOM 中使用这些锚点(作为锚点,而不是 ID!)