什么是href =“#”和它为什么被使用?

在很多网站上,我看到有href="#"链接。 这是什么意思? 它是干什么用的?


关于超链接:

锚标签的主要用途 - <a></a> - 就像超链接一样 。 这基本上意味着他们带你到某个地方。 超链接需要href属性,因为它指定了一个位置。

哈希:

超链接中的散列 - #指定窗口应该滚动到的html元素ID。

href="#some-id"将滚动到当前页面上的元素,例如<div id="some-id">

href="//site.com/#some-id"将转到site.com并滚动到该页面上的ID。

滚动到顶部:

href="#"不指定id名称,但确实有相应的位置 - 页面的顶部。 点击具有href="#"的锚点将滚动位置移动到顶部。

看到这个演示。

根据w3文档,这是预期的行为

超链接占位符:

一个超链接占位符合理的例子就是模板预览。 在模板的单页演示中,我经常看到<a href="#">这样的锚标记是超链接,但不会去任何地方。 为什么不把href属性留空? 空白的href属性实际上是到当前页面的超链接。 换句话说,它会导致页面刷新。 正如我所讨论的, href="#"也是一个超链接,并导致滚动。 因此,超链接占位符的最佳解决方案实际上就是href="#!" 这里的想法是,希望不是页面上的元素id="!" (谁这么做!?),因此超链接没有任何意义 - 所以没有任何反应。

关于锚定标记:

您可能想知道的另一个问题是,“为什么不把href属性关掉?”。 我听到的一个普遍反应是href属性是必需的,所以它应该出现在锚点上。 这是假的! 只有锚点实际上是超链接时才需要href属性! 从w3阅读。 那么,为什么不把它留给占位符呢? 浏览器渲染元素的默认样式,并将更改不具有href属性的锚点标签的默认样式。 相反,它会被认为是普通文本。 它甚至改变了浏览器对元素的行为。 当悬停在没有href属性的锚上时,状态栏(屏幕底部)将不会显示。 最好在锚点上使用占位符href值,以确保它被视为超链接。

看到演示风格和行为差异的演示


将“#”符号表示为href的意思是指它不指向不同的URL,而是指向同一页面上的另一个id或name标记。 例如:

<a href="#bottomOfPage">Click to go to the bottom of the page</a>
blah blah
blah blah
...
<a id="bottomOfPage"></a>

但是,如果没有id或名字,那么它就会“不在哪里”。

这是另一个类似的问题,问'HTML名称'或'ID'的HTML锚点?


这是一个链接到本质的链接(它只是将“#”添加到URL上)。 它用于许多不同的原因。 例如,如果您使用某种JavaScript / jQuery,并且不希望实际的HTML链接到任何地方。

它也用于页面定位,用于重定向到页面的不同部分。

链接地址: http://www.djcxy.com/p/88973.html

上一篇: What is href="#" and why is it used?

下一篇: How to link to part of the same document in Markdown?