首先,我认为 Drake Enterprise Systems 的答案很棒。它涵盖了作者 99% 的问题。我的回答并不意味着被视为更好的答案,它更多的是对 Drake Enterprise Systems 提出的解决方案的补充。
为您的应用设置样式的最佳方式是使用自定义主题。这并不难,它是可重复使用的,并且符合 Sencha 希望您这样做的方式。那里 有 几个 教程 , 当然 Sencha 自己也有很好的指南。
对于那些不想全力以赴的人,我认为使用 UI 是最佳实践。这是设置组件样式的好方法。UI 就像一个 mixin,但带有可选参数(过去您必须设置每个参数,这很麻烦)。大多数组件已经有一个名为“默认”的用户界面,并且开箱即用可以更改为“轻”。您还可以创建自己的用户界面,正如我们对 ExtJs 那样灵活的框架所期望的那样。
如果我们查看面板的 ui,您会发现很多样式都可以通过参数完成。以下是面板的自定义 ui 示例:
@include extjs-panel-ui(
$ui: 'highlight',
$ui-header-background-color: red,
$ui-border-color: red,
$ui-header-border-color: red,
$ui-body-border-color: red,
$ui-border-width: 5px,
$ui-border-radius: 5px
);
当然,可以将 ui 设置为声明性的:
// custom "highlight" UI
xtype: 'panel',
ui: 'highlight',
bind: {
title: '{name}'
},
region: 'west',
html: '<ul><li>This area is...</li></ul>',
width: 250,
split: true,
tbar: [{
text: 'Button',
handler: 'onClickButton'
}]
即使 axtype
没有默认的 UI-mixin,也可以设置 ui 并将其添加到默认类名中,因此对于容器来说,这将是x-container-mycustomui