2011-07-14 225 views
0

在制作下拉菜单中,有jQuery菜单,如superfish和纯CSS菜单。 JS菜单和CSS菜单有什么区别?我不需要onclick事件来覆盖默认锚点。我只需要能够点击菜单项,然后按照<a href="...">...</a>到另一页。CSS菜单与JavaScript菜单

回答

2

一个明显的区别是,JS菜单是更多的自定义。你无法控制像使用CSS一样快速出现菜单的情况。

+1

您可以使用[CSS转换](http://www.w3.org/TR/css3-2d-transforms/)控制速度。 –

+0

不错,谢谢你的提示。一般来说,尽管你比CSS还有更多的灵活性。 –

3

差异:

  1. 的JavaScript打破,如果用户禁用JavaScript的;如果用户禁用CSS(不太常见),CSS菜单将不起作用
  2. 由于像jQuery这样的库而产生的JavaScript更为跨浏览器,这是由于跨浏览器问题由库处理的事实
  3. JavaScript菜单更加灵活,因为CSS在创建高度复杂的效果方面还不够成熟(不要忘记JavaScript是一种编程语言,而编程语言意味着你几乎可以做任何你想做的事情,但CSS更像是声明式的
  4. CSS菜单的大小通常较轻(例如,请参阅Thought Results),但在今天的用户互联网速度方面,这并没有什么大不了的。
  5. 有时候在菜单中,你需要分组,这是不能通过CSS实现的,但可以用JavaScript来完成。 (分组意味着你想打开一个项目的点击下拉,而不是跟随链接地址。当然,在你的情况下,这不是要求)
+0

Re#2:大多数图书馆都是多浏览器,它们被设计用于少数现代浏览器(大多数列表5)的最新版本。仍然会存在跨浏览器问题:jQuery声明与IE 6兼容,StackOverflow是使用jQuery编写的,但是如果使用IE 6访问,会抛出许多错误(并且几乎所有样式都被禁用)。 – RobG

+0

那么,有些方法可以执行子菜单(#5)在CSS中,但以一种复杂的方式。 –

1

从哲学的角度来看,CSS是真的关于造型,关于交互的JS。但是,现在WebKit已经完全采用CSS转换,这条线已经模糊了很多。

最后,尽可能多地使用CSS非常好,然后添加JavaScript以增加抛光交互的级别。比如键盘导航......细微的延迟让鼠标从一个链接移动到下一个......动画等。

+0

线条一直模糊不清。 CSS具有诸如访问链接和悬停效果等“永远”的功能 - 根据交互改变演示文稿。 –

1

即使认为我是开发人员,我总是尽量避免编程。

我想我会用一个CSS菜单去显示使用onHover事件的下拉菜单DIV。

JavaScript可能会受其他应用程序的影响,可能会重复变量。并且您可以轻松将其移植到通常不支持JS的移动设备上