【问题标题】:Where does a href="#" pointing (at|to)??href="#" 指向 (at|to) 在哪里?
【发布时间】:2011-02-01 13:45:38
【问题描述】:

谁能告诉我,带“#”的href是什么意思?

<a id="logoutLink" href="#">Logout</a>

【问题讨论】:

  • 通常意味着它附加到一些javascript。
  • +1 用于在常规语言中以书呆子方式使用正则表达式(哈!双关语!双关语!)
  • “?”不应该是“正则表达式”的一部分。这应该是一个问题;什么是正确的:“指向”或“指向”?我希望一些编辑会编辑它。

标签: html hyperlink


【解决方案1】:

这是说“无处可去”的最短方式:)

通常其他东西绑定到该链接,在大多数情况下是一个 javascript 事件处理程序。但是如果&lt;a&gt; 没有href,大多数浏览器不会以相同的样式呈现它……所以你需要一个简短的东西放在那里。

如果它在散列后面有一些东西,比如&lt;a href="#topics"&gt;Go to Topics&lt;/a&gt;,它是一个滚动链接,它会转到带有id="topics"的元素在页面顶部的位置。一个常见的例子是&lt;a href="#top"&gt;Go to Top&lt;/a&gt;,您将&lt;div id="top"&gt;&lt;/div&gt; 粘贴在页面的最顶部。

【讨论】:

  • 没有href&lt;a&gt; 元素是无效的HTML/XHTML。
  • @zneak - 公平点,我想我大多数时候都忘记提到了,因为如果你不去任何地方,我永远不会考虑使用锚:)
【解决方案2】:

正如其他人所指出的,哈希锚(以 # 符号开头的)通常会导致页面上的命名锚。页面上的目录可能是您在何处看到此内容的一个很好的示例:

<ul>
  <li><a href="#history">Company History</a></li>
  <li><a href="#goals">Our Goals</a></li>
  <li><a href="#products">Products We Offer</a></li>
  <li><a href="#services">Services We Offer</a></li>
</ul>

<h2><a name="history">History</a></h2>
<p>The #history anchor tag will lead to the named anchor above.</p>

<h2><a name="goals">Our Goals</a></h2>
<p>The #goals anchor tag will lead to the named anchor above.</p>

<h2><a name="products">Products We Offer</a></h2>
<p>The #products anchor tag will lead to the named anchor above.</p>

<h2><a name="services">Services We Offer</a></h2>
<p>The #services anchor tag will lead to the named anchor above.</p>

需要注意的是,当你有一个空白哈希作为锚href(即:&lt;a href="#"&gt;Blah&lt;/a&gt;)时,一些浏览器会跳转到页面顶部,这不是预期的效果。为了解决这个问题并防止页面一直滚动到顶部,通常会包含一个 JavaScript 实现,以通过返回 false 来防止锚标记正常运行。

<a href="#" onclick="return false;">Blah</a>

【讨论】:

  • 这些天你应该能够做到

    历史

  • @robertc - 你有一个链接来证明这是 W3C 或类似的预期实现吗?我不是在贬低你的说法,我只是想了解这类东西的最新情况,找不到任何官方声明相同的东西。
  • @robertc - 没关系,我从这里找到了一个声明:w3.org/TR/REC-html40/struct/links.html 它指出:“HTML 文档中的目标锚点可以由 A 元素指定(使用 name 命名)属性),或任何其他元素(使用id 属性命名)。”感谢您指出这一点!
  • 我认为它没有被更多人知道的主要原因是在标准出来的时候很多浏览器都不支持它。
【解决方案3】:

这意味着什么... ;) 通常我们使用#something 来创建某个元素的锚点。如果您的 URL 以 ...#comments 结尾,那么您的浏览器将自动跳转(滚动页面)到带有 id="comments" 的元素。

href="#" 常用于创建无处可去的链接。

【讨论】:

  • 实际上链接并没有创建锚点,它只是告诉浏览器在处理链接时跳转到该锚点。
【解决方案4】:

这意味着将此页面设为锚点并导航到它 - 这就是为什么您在地址行中的 URL 后面看到“#”(这可能会产生令人讨厌的副作用)。这也是为什么如果您单击链接,您的页面将滚动回顶部的原因(旁注:您可以通过在 onclick 处理程序的末尾添加“return false;”来避免这种情况)

【讨论】:

  • 能详细说明副作用吗?
  • 例如,您可能正在使用正则表达式来解析您的 URL - 额外的 # 可以将其丢弃
【解决方案5】:

如果指向页面上的锚点。在这种情况下,锚只是默认的。您可以在页面上有多个锚点

并链接到它们

链接 1 链接2 链接3

【讨论】:

    【解决方案6】:

    井号(即&lt;a id="logoutLink" href="#"&gt;Logout&lt;/a&gt;)是一个占位符,因此您可以在开发页面时在浏览器中预览“注销”链接。最终,井号将替换为真实的 URL。

    【讨论】:

      猜你喜欢
      • 2013-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-20
      • 2021-12-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多