有两种方法可以跳转到HTML中的片段标识符吗?
我一直认为指定片段标识符的标准方法是通过<a name="foo"></a>
。
<a href="#foo">go to foo</a>
<a name="foo"></a> <!-- obsolete method, it seems -->
<p>some content under that anchor with name</p>
但似乎这是旧的方式,而新的方式是使用一个id
,就像这样:
<a href="#bar">go to bar</a>
<p id="bar">some content under that p with id</p>
实际上,W3C验证器说这个name
已经过时了<a>
元素。 那么有两种方法可以跳转到片段标识符,但其中一个是过时的吗? (这是什么时候发生的?)
(还有其他关于id
和name
之间的区别的问题,但这是关于片段标识符的)
那么有两种方法可以跳转到片段标识符,但其中一个是过时的吗?
有两种方法可以识别片段。
(也有两种方法可以跳转到一个,因为您可以使用URL或写一堆JavaScript来滚动页面)。
那是什么时候发生的?
id
是在1996年HTML 4推出时推出的。 它有效地过滤了锚的name
属性。
name
在2014年被HTML5正式废弃了(或者在某些日子我不打算试图弄清楚的Living HTML中)。
回答你的问题:是的,有两种方法可以识别一个片段,一个是过时的。
什么是片段标识符?
使用JS的片段标识符如下。
location.replace('#middle');
是的,有两种方法可以跳转到一个片段标识符,并且都不是过时的(除了a
元素)。
这适用于所有HTML 5个元素比其他规则a
(因为在a
没有name
的HTML5属性)。
所以很快,它就已经作为元素的片段标识符而不再是标识name
属性,因为它是自HTML4以来属性被删除a
元素。
从HTML5访问fragment
流程规范:
上一篇: Are there two ways to jump to a fragment identifier in HTML?