我们想要修改this drop down naviagtion demo。
您可以看到父标签名为" Blog"和#34;工作",正在链接到?blog
和?work
,这意味着当我修改此演示时,我可以将它们链接到domain.com/blog.htm
和它会工作得很好。
但是,如果我不希望这些家长链接到任何地方(而且只有他们的子标签会是实际的链接),我不可能让这个演示工作如果我完全从这些父标签中删除a href
标签,请正确使用。
因此,我可以将它们都链接到#
,因此演示可以保持正常工作,但是如果用户点击这个"虚拟"链接,据我所知,它不会发送任何服务器请求。
问题是这是否是一种可接受的做法(拥有这个无用的#
标签,只是为了维持导航的相同工作流程)?
答案 0 :(得分:1)
通常,如果某个元素没有语义作为链接,那么它就不应该具有href
属性。
href="#"
的预期行为实际上是滚动到页面顶部,不是"什么都不做" 。
AFAIK,下拉菜单的最佳做法是将下拉列表的元素ID放入菜单项的href
属性中(例如href="#dropdown"
) ,以便单击菜单项滚动到正确的下拉列表。如果愿意,您可以使用JS来阻止default link behavior滚动。
将根菜单项实现为链接具有语义意义,因为您需要链接"到可见的下拉页状态。
对于触摸设备上的下拉菜单 ,根菜单项应为链接(可点击)。
答案 1 :(得分:0)
我认为大多数标准都可以接受。就我个人而言,我不喜欢它,并且我不会使用任何链接来处理任何不能链接的东西,或者是某个动作的控件。因此,您可以使用更合适的元素,而不是使用<a>
作为元素。在这种情况下,我认为你不需要一个,你可以将样式应用到<li>
或使用<span>
来获得额外的样式,如果你无法解决这个问题。
答案 2 :(得分:0)
您可以使用onclick属性禁用链接。
<a href="#" onclick="return false;">Link</a>