有两种方法可以跳转到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>元素。 那么有两种方法可以跳转到片段标识符,但其中一个是过时的吗? (这是什么时候发生的?)

(还有其他关于idname之间的区别的问题,但这是关于片段标识符的)


那么有两种方法可以跳转到片段标识符,但其中一个是过时的吗?

有两种方法可以识别片段。

(也有两种方法可以跳转到一个,因为您可以使用URL或写一堆JavaScript来滚动页面)。

那是什么时候发生的?

id是在1996年HTML 4推出时推出的。 它有效地过滤了锚的name属性。

name在2014年被HTML5正式废弃了(或者在某些日子我不打算试图弄清楚的Living HTML中)。


回答你的问题:是的,有两种方法可以识别一个片段,一个是过时的。

什么是片段标识符?

  • 文本/纯文本的片段标识符。
  • URI指的是同一资源中的一个位置。 这种URI以“#”开头,​​后跟一个锚点标识符(称为片段标识符)。
  • 使用JS的片段标识符如下。

    location.replace('#middle');
    

    是的,有两种方法可以跳转到一个片段标识符,并且都不是过时的(除了a元素)。

    这适用于所有HTML 5个元素比其他规则a (因为在a没有name的HTML5属性)。

    所以很快,它就已经作为元素的片段标识符而不再是标识name属性,因为它是自HTML4以来属性被删除a元素。

    从HTML5访问fragment流程规范:

  • 如果DOM中有一个元素的ID与fragid完全相同,那么树中第一个这样的元素就是文档的指示部分; 在这里停止算法。
  • 如果在DOM中有一个名称属性的值与fragid完全相同的元素,那么树中第一个这样的元素就是文档的指示部分; 在这里停止算法。
  • 否则,文档中没有指示的部分。
  • 链接地址: http://www.djcxy.com/p/88045.html

    上一篇: Are there two ways to jump to a fragment identifier in HTML?

    下一篇: Can't access global variables (Javascript)