为什么JS框架使用内联样式而不是CSS来进行布局

时间:2012-12-03 16:18:27

标签: javascript css css3 extjs dojo

观察各种JS框架(Dojo,Ext.JS等)我观察到布局通常(如果不是总是)通过直接DOM操作来完成,就像在给定DOM元素上设置内联样式一样。 这与CSS试图瞄准的东西形成鲜明对比,而在我看来,CSS通常只会“美化”这种场景,指示颜色等。

我想了解为什么做出这样的选择,甚至从历史的角度来看,以及您为页面/网络应用程序的布局部分选择CSS或内联样式。

在什么情况下你会习惯在不使用js dom操作的情况下通过样式表使用CSS? 对于相反的情况会说什么案例?

谢谢!

2 个答案:

答案 0 :(得分:7)

因为他们使用数学来定位大部分内容并且CSS Calc得不到很好的支持。

例如在jQuery UI中,他们使用数学来确定对话框应该在屏幕上的位置或如何拆分列。

CSS正在追赶像FlexboxCalc之类的东西,但是你提到的JS框架经常支持非常老的浏览器,比如IE6,它们不会得到这些CSS更新。

答案 1 :(得分:3)

这种行为有不同的原因。

  1. 如果您不想使用直接DOM操作,则需要将新规则编写到物理css文件中,然后将该文件作为页面依赖项加载。太复杂,完全不需要。

  2. 内联样式不是CSS吗?

  3. 通过前端脚本编写操作必须是内联的,以确保新样式的排名高于原始定义的排名。