什么是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