在HTML5 / CSS3中,似乎有更大的推动仅限CSS的动画,效果,导航等。
这纯粹是因为C / Java / etc开发人员倾向于“错误地”使用JavaScript(我猜这主要是语义上的)?
或者CSS是否优于JavaScript?如果是这样,为什么CSS会更好?它更快吗?
另外,从语义上讲,CSS不应仅用于造型/定位吗?那么CSS开始超出它的设计范围吗?
答案 0 :(得分:14)
这纯粹是因为C / Java / etc开发人员倾向于“错误地”使用JavaScript(我猜这主要是语义上的)?
不,你刚刚错过了一英里的观点。人们使用JavaScript的主要原因是他们希望尽可能多地支持浏览器。 CSS3是一项新技术,只有最新和最好的浏览器才能理解,而JavaScript已经存在了几十年。
或者CSS是否优于JavaScript?如果是这样,为什么CSS会更好?它更快吗?
是的,因为浏览器最了解如何利用系统资源来执行动画,并且当使用CSS本地实现它们时(例如硬件加速),它可以做到最好。使用JavaScript,您依靠浏览器的脚本引擎为您计算动画,这可能会非常昂贵。
但如上所述,最大的缺点是缺乏支持。
另外,从语义上讲,CSS不应仅用于造型/定位吗?那么CSS开始超出它的设计范围吗?
从广义上讲,它总是用于表示 - 将内容和结构作为一个问题分开,当HTML充斥着遍布各处的表现属性时,为任何前端开发人员拼写开发地狱。
您描述的所有这些奇特效果都可以轻松地在演示文稿中进行分类(即它们与应用程序逻辑,业务逻辑,内容,数据等无关),因此它们似乎应该完成CSS。这就把我们带到了今天。
所以,总结一下:
当浏览器支持是最重要的优先级时使用JavaScript(在业务应用程序中它几乎总是如此)。如果转换或迁移到另一种技术成本太高,它通常也会保持原样。
否则,使用CSS。当然,通常会提供JavaScript后备。您经常会在实验或新/启动项目中看到这一点。
答案 1 :(得分:5)
我在这里看不到VS.实际上我认为一个伟大的网络应用程序应该混合他们两个!
我喜欢考虑用于用户交互的JavaScript和用于设计的CSS。这就是我决定将哪一个用于特定目的的方法。
现在,为了解决兼容性问题,你有很多来自优秀人才的伟大作品。例如:http://modernizr.com/
答案 2 :(得分:0)
一个主要问题是并非每个人的浏览器都启用了Javascript。因此,如果您可以使用HTML5 / CSS3实现相同的效果,它的优势在于它可以在所有现代浏览器上运行,无论它们是否启用了Javascript。
答案 3 :(得分:0)
是的,css比javascript更快。 此外,javascript需要额外的http请求,而如果你只使用css,则可以避免这种情况。