CSS下拉菜单 - “最佳”?功能最丰富?

时间:2008-08-19 07:48:24

标签: css navigation suckerfish

我处于不幸的位置,不得不在我正在建设的网站上实施下拉级联菜单。我正在寻找一种主要基于CSS的Suckerfish风格的解决方案,它可以在一组简单的嵌套UL和LI上工作。

Son of Suckerfish似乎是要走的路,但是我不喜欢它移动鼠标的第二种方式消失,因为有协调困难的用户会有一个噩梦导航网站(或只是不打扰,但由于它是一个公司网站,有些人可能 使用我实施的任何东西。)

我还没有想到需要的整洁功能,但我正在寻找的两个主要元素是:

  1. 使用嵌套UL / LI结构的多级
  2. 当菜单是“mouseout”时,消失之前的小(可能是可配置的?)延迟,即使它是由一些额外的JavaScript提供的。

9 个答案:

答案 0 :(得分:7)

强烈建议你使用superfish,suckerfish菜单的jQuery改编。它具有大量功能(延迟就是其中之一),增加了一些奇特的动画功能,并且优雅地降级到正常的suckerfish菜单。它也不需要任何额外的标记。

答案 1 :(得分:3)

你可以使用jQuery。以下是一个示例:http://www.jqueryplugins.com/plugin/47/

答案 2 :(得分:1)

您将无法获得具有所需功能的纯CSS下拉菜单。你必须使用某种Javascript。要么是像JQuery这样的库,要么是通过修改Suckerfish代码来使用onclick而不是onmouseover / out。

但是通过使用所有Javascript路线,您可以让一组人(“具有协调困难的用户”)变得更容易,但让其他人感到困难(因某些原因关闭Javascript的任何人)。

您可能需要考虑添加一些替代方案 - 鼠标控制的悬停菜单,适合那些使用鼠标的人;基于键盘的控制通过访问键等为其他人。

答案 3 :(得分:1)

我正在使用Steve Gibson网站grc.com上实施的解决方案。它可以完成我需要的一切,并使用无javascript 。然而,你正在寻找的延迟是不存在的,所以你可能需要为此添加一些Javascript。

答案 4 :(得分:1)

部分协调问题可能源于糟糕的设计。确保你有相当大的按钮,如果可能的话,在所有侧面重叠。理想情况下,顶部导航按钮会在其下方居中显示下拉菜单(而不是左对齐)。下拉列表的子菜单将遵循类似的模式。我发现这种级别的错误填充可以容纳不协调的用户,并且可以省去用javascript编程的麻烦。

每个网站当然都不同,所以我更多地将其作为替代“假设”解决方案。

答案 5 :(得分:1)

对于现在来到这个旧线程的任何人,我建议您查看bootstrap下拉菜单的各种修改。例如:

http://bootsnipp.com/snippets/featured/multi-level-dropdown-menu-bs3

祝你好运

答案 6 :(得分:0)

我看不到在JavaScript之外添加延迟的方法 - 但是如果你要使用JavaScript,你也可以使用JavaScript控制的菜单。

如果您遵循语义正确的导航模式并进行设置,以便在JavaScript不存在时显示正常(例如静态),那么无论您使用什么,都应该没问题。

所有关于你的目标受众 - 谁更大? JS残疾人或有协调困难的用户?我猜想后者需要优先考虑(如果不是百分比用于残疾人法律)。

答案 7 :(得分:0)

正如Lee Theobald所说,下拉/下拉需要Javascript,而Jquery是一个很好的选择。但是在可访问性方面,请查看“Listamatic”一个很棒的菜单列表和特殊this nested

答案 8 :(得分:0)

我的第一个推荐回声已经做过 - Steve Gibson's CSS Menu。它不使用JavaScript,与您将获得的跨平台兼容,并且实现起来相对简单。

如果这不起作用,我的基于JS的推荐转到mygosuMenu。在找到史蒂夫的菜单之前,我已经在我的所有项目上使用它已经有一段时间了。它高度可配置;和样式,结构和菜单代码都是分开的。它是一个基本的HTML表格,您可以通过CSS为您的内容添加样式。

我还有两个使用后者的网站: