Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 有什么特别好的理由继续使用href='#';在javascript目标链接上?_Html_Css - Fatal编程技术网

Html 有什么特别好的理由继续使用href='#';在javascript目标链接上?

Html 有什么特别好的理由继续使用href='#';在javascript目标链接上?,html,css,Html,Css,大家都知道,这样的代码非常常见: <a href='#' class='edit'>Edit</a> (在样式表中编写一次所需的时间比在每个链接上编写href='#'所需的时间要少) 如果由于某种原因,处理程序没有机会将自己附加到元素(鼠标触发快乐的用户,不耐烦的类型,…),则使用href='#'也会带来令人讨厌的不便,导致浏览器跳到页面顶部 我的问题是,是否有特别好的理由继续使用href='#' 在某些特定环境下,删除它会破坏某些浏览器行为吗 编辑:我得到了一些关于这

大家都知道,这样的代码非常常见:

<a href='#' class='edit'>Edit</a>
(在样式表中编写一次所需的时间比在每个链接上编写href='#'所需的时间要少)

如果由于某种原因,处理程序没有机会将自己附加到元素(鼠标触发快乐的用户,不耐烦的类型,…),则使用
href='#'
也会带来令人讨厌的不便,导致浏览器跳到页面顶部

我的问题是,是否有特别好的理由继续使用
href='#'

在某些特定环境下,删除它会破坏某些浏览器行为吗

编辑:我得到了一些关于这个问题的随机答案,也许我应该澄清一下

问题是:如果我通过css设置了手动光标(以及下划线和颜色-谢谢Borealid),我可以完全去掉href属性吗


这个问题不是关于什么是最好的href或者应该如何附加事件处理程序的问题,而是关于使用CSS更好。不,删除
#
不会破坏浏览器行为。但是,您使用的CSS还不够:您还必须更改文本颜色和下划线样式,再加上实现悬停处理,以及(可选)区分后续链接。

如果用户禁用Javascript或希望在新选项卡中打开编辑屏幕,您最好链接到应该使用的页面:

<a href="/edit-profile/" class="edit-profile-link">Edit Profile</a>

这样,如果出现任何问题,就不会丢失任何功能

当然,构建一个AJAX编辑屏幕和一个标准编辑屏幕需要更多的工作。如果您不想做所有这些,也不关心无Javascript用户,您可以使用以下方法:

<a href="javascript:;" class="edit-profile-link">Edit Profile</a>


一般来说,我不会在js调用中使用标签,它很草率,并且会给出您所说的响应。如果我做的是一个锚,完全使用它,但如果你不只是使用一个类作为你的选择器,并在css做其余的

Setting href=“#”在本例中基本上是希望停止事件的默认行为。实际上,我已经回答了一个与此类似的问题。

从纯粹主义的角度来看,我认为不包含href属性是在破坏网络。如果浏览器不支持javascript,您的链接将不适用于它们。这是一个纯粹主义者的观点——简单地将href指向“#”并没有任何区别

在过去,您仅使用不带href的锚来指定页面上的占位符,但在HTML5中,使用不带href的锚标记似乎已经过时:

因此,纯粹的观点是你打破了网络


现实主义者的观点是,如果你因为你的HTML而不得不在CSS中重新定义浏览器免费提供给你的某些行为——这意味着浏览器对你的HTML中的某些内容不满意。鉴于没有href的锚正在被弃用。常识告诉我,当你处理一个基于浏览器的奇怪错误时,应该继续使用href=“#”以避免出现脸部手掌的情况,该错误是由于对DOM的轻微违反而导致的。

谢谢你的第一个建议。第二,href=“javascript:;”似乎比href='#'或根本没有href:)更令人讨厌@Ben在整个网站的范围内,差异是无关紧要的。差异不到一秒钟。值得一提的是,如果单击该对象无法导航到任何地方,那么它不应该是
和@Chris。。谢谢你的链接,我搜索了这些,但没有找到这些..有点可笑的是,这个问题甚至提到点击重置页面水平位置,是否有效地将锚定到页面顶部?从你的链接:有时我不喜欢#解决方案,这会弄乱滚动条-单击滚动条后,滚动条将始终显示在顶部。因此,这种联系仍然被视为触发了一项行动格蕾丝·邵9小时前就已经被清除了,不需要再挑三拣四了。请保持话题性和建设性。
<a href="/edit-profile/" class="edit-profile-link">Edit Profile</a>
<a href="javascript:;" class="edit-profile-link">Edit Profile</a>