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
我该怎么办?
补充说明:
这很奇怪,但我认为:
- id 通常显示在 url - TRUE
- url 必须依赖于语言 - TRUE
- 一个元素只有一个 id 在使用相同的模板时会搞砸 - 正确
这三个不能同时为真...是 W3C 的某个人遗漏了什么,还是我遗漏了什么? :)
我认为,你的第一个假设是不正确的。当然你可以使用 url 的散列值来滚动到一个锚点。大多数浏览器默认这样做,一些框架(如 backbone.js)也这样做。
这很好!因为它是 anchor 而不是 id! Anchor 和 id 仅共享 #
符号,但只是偶然。
因此,对于您问题的核心,您可以(并且可能应该)对页面的语言相关变体使用不同的锚点,并在您的 DOM 中使用这些锚点(作为锚点,而不是 ID!)
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
我该怎么办?
补充说明:
这很奇怪,但我认为:
- id 通常显示在 url - TRUE
- url 必须依赖于语言 - TRUE
- 一个元素只有一个 id 在使用相同的模板时会搞砸 - 正确
这三个不能同时为真...是 W3C 的某个人遗漏了什么,还是我遗漏了什么? :)
我认为,你的第一个假设是不正确的。当然你可以使用 url 的散列值来滚动到一个锚点。大多数浏览器默认这样做,一些框架(如 backbone.js)也这样做。
这很好!因为它是 anchor 而不是 id! Anchor 和 id 仅共享 #
符号,但只是偶然。
因此,对于您问题的核心,您可以(并且可能应该)对页面的语言相关变体使用不同的锚点,并在您的 DOM 中使用这些锚点(作为锚点,而不是 ID!)