【问题标题】:hash in anchor tags锚标签中的哈希
【发布时间】:2011-07-05 11:54:52
【问题描述】:

如何加载页面并让它在加载页面的特定位置打开?

例如,假设我有 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>

但是当我点击来自page1.html#2#3 链接时,它们总是在页面顶部打开,即使#2#3 不在page2.html 的屏幕上需要向下滚动才能看到。

不知道我做错了什么。

【问题讨论】:

  • 您能否发布一个包含您现有锚点的 html 示例 - 例如

    第二节

标签: html anchor


【解决方案1】:

您需要在page2.html 上放置 named 锚点,如下所示:

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

【讨论】:

  • 这些命名的锚也可以在其中包含href吗?
  • @oshirowanen 是的,这是可能的。然而,为了理智起见,我会将这两个概念分开。也就是说,我总是将锚点留空,并为链接使用单独的标签。或者其他任何东西。
  • @KonradRudolph,id 是否适用于 IE7 等浏览器?
  • 没有身份证有什么办法吗?
  • @bluejayke 为什么? ID 有什么问题?
【解决方案2】:

您需要为它应该“跳转”到的元素添加一个 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将占上风。为避免混淆,我始终坚持使用一种方法。关于这个here

【讨论】:

  • 如何让它跳转到另一个收音机导航标签?
【解决方案3】:

target 页面上的锚标记中使用 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。当两个属性都用于单个元素时,它们的值必须相同。

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

【讨论】:

  • 这是正确答案。您需要 ID 和名称 Jump Here
【解决方案4】:

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

片段作为链接

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

确实跳转到 ID:

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

和命名锚:

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

【讨论】:

    【解决方案5】:

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

    www.yoursite/index.html#content 将您滚动到&lt;div id="content"&gt;(如果存在)或&lt;div name="content"&gt;

    【讨论】:

      【解决方案6】:

      您必须将部分名称或 ID 1、2 和 3 分配给部分,然后它将为您工作..

      【讨论】:

        猜你喜欢
        • 2016-11-20
        • 2011-09-28
        • 2011-12-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-15
        • 1970-01-01
        相关资源
        最近更新 更多