代码之家  ›  专栏  ›  技术社区  ›  Gavrisimo

使用不带href的锚来获得:悬停效果?

  •  0
  • Gavrisimo  · 技术社区  · 16 年前

    如果你看 here 把鼠标悬停在“Ponuda”上,你会得到很好的悬停效果。问题是,李的一切都在其中 确实有 href值,所以当您单击它们时,会打开一些页面。但是,因为当你将鼠标悬停在“Ponuda”上时,我显示了一些子菜单,我不希望它被链接,但我仍然希望有悬停效果。所以代码是这样的:

    <a>PONUDA</a>
    

    tbh我从来没有想过使用没有href值的锚,所以很少有问题:

    1. 这项技术的有效性如何:锚的悬停状态?我知道我可以使用JS,但我只想知道当你只想使用那个伪选择器时它是否可以解决问题:悬停,所以只需要不使用JS的CSS。
    2. 搜索引擎呢?当他们到达锚标记,并且看到它没有href时,他们会做什么?他们希望每个锚标记都有href吗?

    我知道这是一个愚蠢的问题,但是任何提到这个“问题”都是很好的!

    5 回复  |  直到 16 年前
        1
  •  2
  •   JAB    16 年前

    大多数现代浏览器支持使用 :hover 标记上的伪类 a ,这样您就可以将它们应用到 li 标签,即使有了Internet Explorer,也有很多解决方法。 This workaround 如果您不想使用任何javascript,这是一个很好的方法。

    使用什么好 悬停 在我看来,元素本身就是悬停状态,即使移动到嵌套列表元素(即子菜单元素)中的某一个时也是如此。不过,如果你不太想这样的效果,我建议你坚持 标签(尽管正如佩卡所说)。

        2
  •  3
  •   Ed Daniel    16 年前

    <a href="#"> 就好了。

    但是您可能希望将href指向一个备份页面,这样那些没有javascript的用户仍然可以导航到包含指向子菜单选项的链接的页面。然后添加一个返回false的onclick处理程序,以防止启用了javascript的浏览器(可以看到您的菜单)在单击时跟踪链接。

    这样,您就覆盖了所有的基础,并为自己证明了为什么存在该href属性:)

        3
  •  0
  •   Paul Butcher    16 年前
    1. 对我来说似乎是有效的,但是除非你需要它在IE6或其他地方工作,更早的时候,你没有理由不能使用它 span .

    2. The href attribute is optional on a elements .
      我不明白为什么搜索引擎会期望任何可选属性的存在,同样,在你接受的自由精神。即使这是强制性的,我想任何一个像样的搜索引擎都能应付。

        4
  •  0
  •   Paul Woolcock    16 年前

    据我所知,您不必让元素成为锚,hover-psuedo类可以在任何有效的dom元素上工作。如果你担心,你可以补充 href="#" 给标签。

        5
  •  -2
  •   Pekka    16 年前

    你可以使用 <a href="#">...</a> <a href="javascript:;">...</a>

    没有href属性是无效标记

    推荐文章