Javascript 我是否应该尽可能避免使用JS,而改用CSS?
我在寻找最佳实践答案。目前,我正在尝试添加一个下拉菜单到我的网站的导航栏。我发现我可以使用CSS,也可以使用JS-Angular。我读过这篇文章,因为JS可以编程恶意的东西,有些人会禁用JS。因此,为了在更多的计算机上保持你的网站功能,应该用CSS编程。这有什么好处吗?如果可能的话,我应该避免使用JS编码吗?这里有几个重要的原因,说明为什么您更喜欢使用CSS而不是JSJavascript 我是否应该尽可能避免使用JS,而改用CSS?,javascript,html,css,angularjs,Javascript,Html,Css,Angularjs,我在寻找最佳实践答案。目前,我正在尝试添加一个下拉菜单到我的网站的导航栏。我发现我可以使用CSS,也可以使用JS-Angular。我读过这篇文章,因为JS可以编程恶意的东西,有些人会禁用JS。因此,为了在更多的计算机上保持你的网站功能,应该用CSS编程。这有什么好处吗?如果可能的话,我应该避免使用JS编码吗?这里有几个重要的原因,说明为什么您更喜欢使用CSS而不是JS 与JS相比,CSS动画的性能要好得多 动画。CSS在渲染动画时占用的内存不如JS多 如果您的动画取决于屏幕宽度,CSS媒体查询
- 与JS相比,CSS动画的性能要好得多 动画。CSS在渲染动画时占用的内存不如JS多
- 如果您的动画取决于屏幕宽度,CSS媒体查询就像一个魅力,没有任何延迟。但是,如果必须使用JS实现这一点,则必须将事件绑定到窗口大小,并在每次调整大小时执行操作
- Javascript动画的开销总是比CSS动画略高,因为最终JS动画将操纵动画的CSS样式
CSS动画和JS
requestAnimationFrame
实现之间的性能比较令人惊讶。取决于您所做的事情,每个开发人员的意见都会有所不同,CSS在创建交互式web体验方面也有其局限性。另外要考虑的是,如果使用某些更新的/实验性的CSS特性,你可能会因为斑点浏览器的支持而正确地使用你的网站。这个问题没有明确的答案。(除非你想建立一个只包含静态链接和…嗯,动画GIF的非交互式网站,好吧,有人会得到一个较差的UX。)我反对搁置这个问题,因为到目前为止,答案已经表明彼此一致,CSS是一个最佳实践,原因如下所示。当然,也会有例外,但总的来说,我的问题的答案是尽可能使用CSS。从IE6开始,你可以创建一个完整的CSS下拉菜单,但在很多情况下,你无法避免js(例如Ajax)。顺便说一句,我不同意这些答案。我不能在“主要基于观点”和“过于宽泛”之间做出选择:-/如果你只是想解决下拉列表问题,CSS或JS应该没有多大关系,前提是你的方式正确。否则,我的回答应该会给你足够的信息来进行比较。