更好或更糟:使用JavaScript和CSS进行样式化

时间:2013-10-04 18:36:03

标签: javascript html css css3

我正在开发一个响应式设计,想知道使用JavaScript或CSS设置元素样式是否更好? CSS肯定更容易维护,我不会争辩,但我更习惯用JavaScript构建对象。也许我为自己做了比我应该做的更多的工作,但我觉得我有更多的控制整体,我喜欢能够挂钩屏幕上的每个对象。

我有构造函数生成整个页面布局并将其推送到DOM中。没有图像,只有纯粹的JavaScript样式和SVG图标。

我想知道的是:

  • 什么表现更好?
  • 如果JS或CSS有任何硬件支持,该怎么办?
  • 纯JavaScript解决方案比使用CSS Calc()更好吗?
  • 什么更便携?
  • 什么更向前兼容?

我倾向于避免使用jQuery,因为我更感兴趣的是学习什么使得现在正常工作,所以只有纯JavaScript和CSS3。

4 个答案:

答案 0 :(得分:20)

您的样式应尽可能使用CSS 。根据您的需要设置不同的类,然后在JS绝对必要时添加或删除类。

要记住的一件事是,通过JS改变样式是一次性的改变。动态添加的元素VIA Ajax不会自动继承样式更改。坚持使用CSS的另一个好理由。

请参阅此帖子以获取更多确认Should I load responsive design via JS or CSS

如链接中所述

  

将关于样式的所有内容放在CSS文件中是最好的   实践。

     

HTML =>结构

     

CSS =>样式

     

JS =>逻辑

答案 1 :(得分:16)

CSS是设置(X)HTML文档样式的最佳方式。

即使您需要使用原始JavaScript或DOM或某些框架(如jQuery)来设置文档样式,这也意味着您要为CSS规则赋予值。

规则应该是:

  • 在为可预测文档设置样式时使用纯CSS - 您也可以 增强CSS并将CSS选择器用于广义或复杂 情景 - 。

  • 当文档或部分文档无法预测或即时创建时,使用JavaScript / DOM或JavaScript等框架 你正在使用淡化或其他任何特效 - 事实上, CSS 3.0具有转换功能,因此可以执行很多操作 没有JavaScript - 。

毕竟,想想用CSS完成的事情有多简单,使用JavaScript代替什么样的矫枉过正,并记住它的缺点(非常重要的一点:浏览器兼容性和性能)。

您使用的CSS越多,标准化,跨浏览器,高性能和可维护的网络就越多。

答案 2 :(得分:4)

UI应留给UI解决方案(HTML / CSS)。 JavaScript应提供其他功能。

为了补充这一点(因为你提到了CSS3),如果你指的是动画和CSS3的新增内容(可能无法使用),你可以使用javascript - 但仅作为后备。 (例如,使用jQuery的fadeTo而不是使用CSS3创建动画时间轴。)

答案 3 :(得分:2)

使用CSS应用样式时存在严重的缺点,不仅因为你无法控制specificity,它很慢(如你所料),任何涉及类的.css()调用,例如$('.something').css(...),只会将css应用于当时存在的该类的元素,而不是将来创建的.something