我逐渐意识到通过外部或内联css做的大量工作也可以通过直接操作DOM来完成。我也听说过页面加载它的速度更快。另一方面,如果这样做,任何缺乏javascript支持都可能使我的整个应用程序在任何时候都没用(或者至少非常难看)。
关于这个问题的任何想法?
答案 0 :(得分:3)
CSS可以为您的页面设置样式,因此您一定要使用它们。
正如您所说,如果用户已禁用JS,则页面将无法正确设置样式。
可以缓存外部CSS文件,从而节省带宽,加载时间,ecc。
更改CSS文件中的某些值比在脚本中查找这些值更好,因此可以提高可维护性。
如果你想用dinamically改变元素样式,只需用JS更改它们的类,然后在CSS文件中为每个类创建不同的样式,这样你只需使用JS来改变元素类,而不必编写所有CSS代码在剧本中。
修改强>
我忘了提到在页面加载(头部分)上有CSS可以显示页面,因为内容加载已经设置样式,并且因为在页面加载结束时最好有脚本,如果你把样式放在你的脚本你失去了从一开始就正确显示页面的机会,我认为这很糟糕。
答案 1 :(得分:2)
CSS是设置(X)HTML文档样式的最佳方式。
即使您需要使用原始JavaScript或DOM或某些框架(如jQuery)来设置文档样式,这也意味着您要为CSS规则赋予值。
规则应该是:
在为可预测文档设置样式时使用纯CSS - 您也可以增强CSS并将CSS选择器用于广义或复杂场景 - 。
当文档或部分内容无法预测或即时创建并且您正在应用特殊效果(如淡入淡出或其他任何内容)时使用JavaScript / DOM或框架 - 实际上,CSS 3.0有过渡,因此可以在没有JavaScript的情况下做很多事情 - 。
毕竟,想想用CSS完成的事情有多简单,使用JavaScript代替什么样的矫枉过正,并记住它的缺点(非常重要的一点:浏览器兼容性和性能)。
您使用的CSS越多,标准化,跨浏览器,高性能和可维护的网络就越多。
答案 2 :(得分:1)
如果您通过DOM操作,意味着通过脚本更改元素的样式属性,那么可以肯定,这可能会在浏览器中完成,但我不知道您为什么要这样做。
请注意,我说“在浏览器中”:Internet Explorer(与浏览器相对)有一个非常慢的DOM,缺少有用的方法,各种JS库用于元素选择,这意味着对于许多选择器,他们有遍历 ton 元素以检查它们是否与所选择的选择器匹配。
在IE中选择和遍历元素真的非常昂贵。
所以你的建议,如果我理解它是丑陋的,不切实际的,完全无法使用IE浏览器。但现在我很好奇:你为什么要用JS做所有的造型? CSS文件(或内联样式?)
有什么问题