在许多网站上,我看到有href="#"的链接。这是什么意思?它的用途是什么?
当前回答
href属性定义了链接资源的URL。如果锚标签没有href标签,那么它就不会成为超链接。href属性有以下值:
1. Absolute path: move to another site like href="http://www.google.com"
2. Relative path: move to another page within the site like herf ="defaultpage.aspx"
3. Move to an element with a specified id within the page like href="#bottom"
4. href="javascript:void(0)", it does not move anywhere.
5. href="#" , it does not move anywhere but scroll on the top of the current page.
6. href= "" , it will load the current page but some browsers causes forbidden errors.
Note: When we do not need to specified any url inside a anchor tag then use
<a href="javascript:void(0)">Test1</a>
其他回答
据我所知,它通常是一个占位符的链接,有一些JavaScript附加到他们。链接的要点是通过执行JavaScript代码来实现的;支持JS的浏览器会忽略真正的链接目标。如果浏览器不支持JS,散列标记实际上会将链接变成一个no - op。参见unobtrusive JavaScript。
href属性定义了链接资源的URL。如果锚标签没有href标签,那么它就不会成为超链接。href属性有以下值:
1. Absolute path: move to another site like href="http://www.google.com"
2. Relative path: move to another page within the site like herf ="defaultpage.aspx"
3. Move to an element with a specified id within the page like href="#bottom"
4. href="javascript:void(0)", it does not move anywhere.
5. href="#" , it does not move anywhere but scroll on the top of the current page.
6. href= "" , it will load the current page but some browsers causes forbidden errors.
Note: When we do not need to specified any url inside a anchor tag then use
<a href="javascript:void(0)">Test1</a>
创建无序列表的目的通常是将它们用作菜单,但li列表项是文本。因为列表li项是文本,所以鼠标指针将不是箭头,而是“I光标”。当可以点击某个东西时,用户习惯于看到指向的手指是鼠标指针。在li标记内使用锚标记会使鼠标指针变为指向的手指。如果将列表用作菜单,那么用手指就更好了。
<ul id="menu">
<li><a href="#">Menu Item 1</a></li>
<li><a href="#">Menu Item 2</a></li>
<li><a href="#">Menu Item 3</a></li>
<li><a href="#">Menu Item 4</a></li>
</ul>
如果列表用于菜单,并且不需要链接,则不需要指定URL。但问题是,如果省略href属性,<a>标记中的文本将被视为文本,因此鼠标指针将返回到I-cursor。i -游标可能会使用户认为菜单项不可点击。因此,您仍然需要一个href,但不需要指向任何地方的链接。
您可以为菜单列表使用许多div或p标记,但鼠标指针也可以作为它们的I-cursor。
您可以使用许多按钮堆叠在彼此的菜单列表,但列表似乎更可取。这可能就是为什么href="#"在列表标记中的锚标记中不指向任何地方的原因。
你可以在CSS中设置指针样式,这是另一种选择。href="#"可能只是设置一些样式的偷懒方式。
将“#”符号作为某个东西的href意味着它不是指向不同的URL,而是指向同一页面上的另一个id或名称标记。例如:
<a href="#bottomOfPage">Click to go to the bottom of the page</a>
blah blah
blah blah
...
<a id="bottomOfPage"></a>
然而,如果没有id或名称,那么它就会变成“no where”。
这里有另一个类似的问题问HTML锚与'名称'或'id'?
正如其他一些回答所指出的,a元素需要href属性,#用作占位符,但它也是一个历史工件。
来自Mozilla开发者网络:
href 这是锚定义的惟一必需属性 超文本源链接,但在HTML5中不再需要。省略 此属性创建一个占位符链接。href属性 链接目标,URL或URL片段。一个URL Fragment是一个名称,前面有一个散列标记(#),它指定了一个 当前文档中的内部目标位置(ID)。
此外,根据HTML5规范:
如果a元素没有href属性,则该元素表示a 占位符,用于链接可能被放置的位置 都是相关的,只包含元素的内容。
推荐文章
- 使伸缩项目正确浮动
- 形式内联内的形式水平在twitter bootstrap?
- 自定义元素在HTML5中有效吗?
- 如何触发自动填充在谷歌Chrome?
- 创建圈div比使用图像更容易的方法?
- 为什么Chrome浏览器不正确地确定页面是在不同的语言,并提供翻译?
- 在网页上用鼠标模拟震颤(例如帕金森病)?
- Bootstrap抛出Uncaught错误:Bootstrap的JavaScript需要jQuery
- 如何改变文本区域的边框颜色:焦点
- 我如何设置背景颜色为文本的宽度,而不是整个元素的宽度,使用CSS?
- 如何删除和清除所有的本地存储数据
- 强制打开“另存为…”弹出打开文本链接点击PDF在HTML
- 如何修改标签文本?
- 我如何用javascript编程点击链接?
- 在HTML中还有其他有用的空格码吗,比如半空格的 , em-spaces, en-spaces等等?