ExtJS3到4迁移时保留CSS样式

ExtJS3到4迁移时保留CSS样式,css,extjs,migration,styling,Css,Extjs,Migration,Styling,将我们的ExtJS3应用程序升级到ExtJS4后,一些(但不是全部)组件的外观发生了变化。该应用程序使用了三个CSS文件:原始的ext-all.CSS和两个自己的文件,这些文件是许多月前编写的。这两个文件似乎生成并定义了基于类的规则,如 .x-menu-group-item .x-menu-item-icon { background-image: none; } .x-menu-plain { background-color: #fff !important; } .x-menu

将我们的ExtJS3应用程序升级到ExtJS4后,一些(但不是全部)组件的外观发生了变化。该应用程序使用了三个CSS文件:原始的ext-all.CSS和两个自己的文件,这些文件是许多月前编写的。这两个文件似乎生成并定义了基于类的规则,如

.x-menu-group-item .x-menu-item-icon {
  background-image: none;
}

.x-menu-plain {
  background-color: #fff !important;
}

.x-menu .x-date-picker {
  border-color: #AFAFAF;
}
要恢复应用程序的外观,我可以

  • 从头重写自己的两个文件
  • 保留这些文件,并为外观古怪的组件定义新规则。要做到这一点,我必须用Firebug手工挑选它们,并猜测组件使用的众多CSS类中,我必须重新设置样式的是哪一个。这需要几天的时间
  • 用新的主题化支持来设计应用程序,我还不知道。这应该是最后一个选择,因为这可能需要太长时间。另外,我不知道如何在SASS中导入现有的CSS文件
  • 那么,像旧的ExtJS 4应用程序那样重新设计ExtJS 4应用程序的最佳方式是什么?


    编辑:我不想通过应用“style”参数在代码中编写CSS。CSS文件必须注意样式设置。

    事实证明,主题化是绝对正确的方法。我按照下面的步骤恢复了应用程序最重要的样式

    很快我就遇到了这个bug,并通过将sass降级到3.1.1解决了它,就像前面提到的那样

    要恢复大部分设计,我只需在我的ext theme.scss中重新定义以下变量:

    $grundblau: #b9d7ff;
    $panelrandgrau: #D0D0D0;
    $panelgrau: #f1f1f1;
    
    $base-color: $grundblau;
    
    $panel-border-color: $panelrandgrau;
    $panel-frame-background-color: $panelgrau;
    $panel-header-color: #333333;
    
    如您所见,应用程序的自定义设计实际上非常简单。:)