Html 为什么在空锚定标记HREF中使用#约定?
我知道最好不要留下空的锚标签。在jQuery和其他语法中,我注意到每个人都通常使用#来填补空白(Html 为什么在空锚定标记HREF中使用#约定?,html,Html,我知道最好不要留下空的锚标签。在jQuery和其他语法中,我注意到每个人都通常使用#来填补空白()。这个角色比其他角色更好还是更差?(例如,)。我没有理由想这样做,但除了惯例之外,似乎也没有理由以另一种方式去做。为什么在空锚定标记HREF中使用#约定 这是因为URL中的#字符引用本地页面 它用于页面中的命名锚(或任何ID),因此链接可以直接跳转到该区域 将其称为片段标识符,并表示: 片段标识符(如果存在)指定整个资源或文档中的一个部分或位置。当与HTTP一起使用时,它通常指定页面中的一个部分或位
)。这个角色比其他角色更好还是更差?(例如,
)。我没有理由想这样做,但除了惯例之外,似乎也没有理由以另一种方式去做。为什么在空锚定标记HREF中使用#
约定 这是因为URL中的#
字符引用本地页面
它用于页面中的命名锚(或任何ID),因此链接可以直接跳转到该区域
将其称为片段标识符
,并表示:
片段标识符(如果存在)指定整个资源或文档中的一个部分或位置。当与HTTP一起使用时,它通常指定页面中的一个部分或位置,浏览器可以滚动显示页面的该部分
作为一个实际的例子,这个到维基百科的链接有一个片段标识符(总是在URL的末尾):
在页面中,如果用户禁用了javascript,则会有一个
这样的链接http://mysite.com/#“不会有任何负面后果
例如,这些链接仍然有效,因为#
在当前页面上指定了一个位置:
虽然这些没有:
这是一种防止点击操作触发页面重新加载的老派方法
如果您不使用href属性,请将其保留为空,或者如果您可以为禁用JS的人设置一些备用URL,则效果更好(p>由
表示的链接)
因此,基本上,
指示浏览器保持在同一页面上。它通常与JavaScript一起使用-挂接onClick事件-以便JavaScript执行一些有用的操作,然后返回false
,以防止浏览器实际跟踪链接。但是如果他愿意(例如,如果JavaScript被禁用,或者return false
被禁用),那么它将不会离开当前站点,通常甚至不会重新加载它
因此,#
不是用作随机字符,而是因为它实际上是为了表示链接中的锚定而指定的字符-碰巧在您的情况下,您既不需要实际链接(到另一个页面)也不需要锚定,只需要一个可单击的元素。如果将其留空,则需要添加类似a的内容{cursor:pointer;}
指向您的CSS,使其以相同的方式运行。此外,href
是必需的HTML属性iirc。如果该属性存在但只是空的(如我在回复中所说)它可以很好地验证并显示光标。请注意,如果您使用像#!
或类似的锚点,那么如果禁用JavaScript(或者如果事件侦听器中出现错误且无法返回false
或调用preventDefault
),则不会产生滚动到页面顶部的不良副作用.我从来都不知道!
。你能解释一下为什么这有助于不滚动到顶部吗?
http://en.wikipedia.org/wiki/Uniform_Resource_Locator#Syntax