锚标签中的哈希值

时间:2011-07-05 11:54:52

标签: html anchor

如何加载页面并让其在加载页面的某个位置打开?

例如,假设我有page1.html,其中有3个链接

<a href="page2.html#1">1</a>
<a href="page2.html#2">2</a>
<a href="page2.html#3">3</a>

page2.html上,我在页面上也有这些链接,即

<a href="page3.html#1">1</a>
<a href="page3.html#2">2</a>
<a href="page3.html#3">3</a>

但是,当我点击#2中的#3page1.html链接时,即使#2和{{1},它们也会始终在页面顶部打开在#3的屏幕上,需要向下滚动才能看到。

不确定我做错了什么。

6 个答案:

答案 0 :(得分:36)

您需要在page2.html上添加名为的锚点,如下所示:

<a name="1"></a>
…
<a name="2"></a>
…
<a name="3"></a>

- 这是在HTML5之前。现在,您使用id代替name

答案 1 :(得分:22)

您需要为应该“跳转”到的元素添加ID。

例如,如果你有

<div id="part1">
  <p>Blah blah blah</p>
</div>

<div id="part2">
  <p>Blah blah blah</p>
</div>

<div id="part3">
  <p>Blah blah blah</p>
</div>

他们都在page.html

然后你可以链接到page.html#part1page.html#part2等等,它会跳转到页面的正确部分

更新

您也可以使用name属性,但我更喜欢使用id。这是因为任何东西都可以有id,但不一定是名字。例如,我认为name不是HTML 5中'a'标记的有效属性。另外,如果你有一个id =“part1”的元素和另一个name =“part1”的不同元素,那么id为id的那个将取得优势。为了避免混淆,我只是坚持使用一种方法。关于这个here

还有一些讨论

答案 2 :(得分:5)

目标页面的锚标记中使用name属性或id属性可以达到预期效果。

<a name="someLocation" id="someLocation">SomeText</a>

作为XHTML 1.1约定,锚标记的name属性已被id属性替换。在XHTML 1.0的上下文中,name属性被视为已弃用。

See this answer有关锚标记更改的相关讨论。

总结:出于兼容性原因,许多人建议在同一元素中同时使用id属性和name属性。在这种情况下,锚标记。

The W3C Standard建议(关于所有适用的要素):

  

id和name属性共享相同的名称空间。这意味着它们不能在同一文档中定义具有相同名称的锚点。允许使用这两个属性为以下元素指定元素的唯一标识符:A,APPLET,FORM,FRAME,IFRAME,IMG和MAP。当两个属性用于单个元素时,它们的值必须相同。

对于任何重复道歉,我缺乏评论最佳答案的声誉。

答案 3 :(得分:4)

由于仍然找到这些帖子,我想添加更新:

<a href="#jumppoint">goto '#jumppoint'</a>

跳转到:

<div id="jumppoint">  <!-- name="" does not work here on modern browsers -->
   <h2>here</h2>
</div>

和:

<a name="jumppoint" />
<h2>here</h2>

答案 4 :(得分:1)

命名您的锚点或将链接添加到您的元素:

www.yoursite / index.html中#含量 将您滚动到<div id="content">(如果存在)或<div name="content">

答案 5 :(得分:0)

您必须为部分指定部分名称或ID 1,2和3,然后它才适合您..