似乎在 HTML5/CSS3 中,对纯 CSS 动画、效果、导航等的推动力更大。
这纯粹是因为 C/Java/etc 开发人员倾向于“错误地”使用 JavaScript(我猜主要是在语义上)?
还是 CSS 比 JavaScript 有优势?如果是这样,为什么 CSS 会更好?它更快吗?
另外,从语义上讲,CSS不应该只用于样式/定位吗?那么 CSS 是否开始超出它的设计范围?
似乎在 HTML5/CSS3 中,对纯 CSS 动画、效果、导航等的推动力更大。
这纯粹是因为 C/Java/etc 开发人员倾向于“错误地”使用 JavaScript(我猜主要是在语义上)?
还是 CSS 比 JavaScript 有优势?如果是这样,为什么 CSS 会更好?它更快吗?
另外,从语义上讲,CSS不应该只用于样式/定位吗?那么 CSS 是否开始超出它的设计范围?
这纯粹是因为 C/Java/etc 开发人员倾向于“错误地”使用 JavaScript(我猜主要是在语义上)?
不,你差一点就错过了这一点。人们使用 JavaScript 的主要原因是他们希望支持尽可能多的浏览器。CSS3 是一项新技术,只有最新最好的浏览器才能理解,而 JavaScript 已经存在了几十年。
还是 CSS 比 JavaScript 有优势?如果是这样,为什么 CSS 会更好?它更快吗?
是的,因为浏览器最清楚如何利用系统资源来执行动画,并且在使用 CSS (例如硬件加速)本机实现它们时,它可以最好地完成这项工作。使用 JavaScript,您依赖浏览器的脚本引擎为您计算动画,这可能会变得非常昂贵。
但如上所述,最大的缺点是支持乏善可陈。
另外,从语义上讲,CSS不应该只用于样式/定位吗?那么 CSS 是否开始超出它的设计范围?
从广义上讲,它一直是用于演示的——将其与内容和结构分开,当 HTML 充斥着到处都是演示属性时,对于他们那个时代的任何前端开发人员来说都是开发地狱。
您描述的所有这些花哨的效果都可以很容易地归类到表示下(即它们与应用程序逻辑、业务逻辑、内容、数据等没有任何关系),因此它们应该使用 CSS 来完成似乎很合适。这将我们带到了今天的位置。
所以,总结一下:
当浏览器支持是最重要的优先级时使用 JavaScript(在业务应用程序中几乎总是如此)。如果转换或迁移到另一种技术的成本太高,它也经常保持原样。
否则,使用 CSS。当然,通常会提供 JavaScript 后备。您经常会在实验或新/启动项目中看到这一点。
I can't see a VS here. Actually I think a great web app should be made mixing both of them!
I like to think about JavaScript for user interactions and CSS for design. That's how I decide which one I should use for a specific purpose.
Now days you have a lot of great works from brilliant people in order to solve the compatibility issues. E.g.: http://modernizr.com/
是的,css 比 javascript 快。此外,javascript 需要额外的 http 请求,而如果您只使用 css,则可以避免这种情况。
一个主要问题是并非每个人的浏览器都启用了 Javascript。因此,如果您可以使用 HTML5/CSS3 实现相同的效果,那么它的优势在于它可以在所有现代浏览器上运行,无论它们是否启用了 Javascript。