4

基本色を変更するだけで、より複雑な ExtJS 4 のカスタム テーマを作成しようとしています。したがって、おそらくこれは、テーマ自体よりも SASS に関する質問です。

ExtJS はすべてのコンポーネントに対して mixin を宣言しますが、これらの多くの mixin にはパラメーターがありません。

@mixin extjs-menu {
  .#{$prefix}menu-body {
      @include no-select;
      background: $menu-background-color !important;
      padding: $menu-padding;
  }
  ...
}

たとえば、これはメニュー ミックスインです。ご覧のとおり、これらは mixin パラメーターを使用していません。代わりに、すべてのメニューに影響するグローバル変数を使用しています。

したがって、このコンポーネントを変更するために、次のことを行っていました。

$menu-background-color: red;
@include ext-menu

しかし、アプリに複数のメニューがあり、それぞれに異なる外観が必要な場合はどうなるでしょうか。何か案は?

私の考えは、自分の変更で mixin を作成し、ext-menu mixin を呼び出すことでしたが$menu-background-color: red、mixin 内で宣言することがグローバル変数に影響するかどうかはわかりません。

4

1 に答える 1

1

.sass ファイルで、次のようにします。

.my-menu {
  @include extjs-menu;
}

JS コードではcls: 'my-menu'、Ext.menu.Menu に割り当てるだけです。

于 2012-08-26T13:52:37.343 に答える