extjs4 - extjs 4主题如何使用全局变量创建自定义组件

标签 extjs4 themes sass

我正在尝试为 ExtJS 4 创建一个自定义主题,比仅更改基色更复杂。所以这可能更多是关于 SASS 的问题,而不是主题本身。

ExtJS 为其所有组件声明了 mixin,但对于其中许多组件,mixin 没有参数。

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

例如,这是菜单 mixin。正如你所看到的,他们没有使用 mixin 参数;相反,他们使用影响所有菜单的全局变量。

因此,为了修改此组件,我执行了以下操作:

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

但是,当您的应用程序中有多个菜单并且您希望每个菜单具有不同的外观时,会发生什么情况呢?有什么想法吗?

我的想法是用我的更改创建一个 mixin 并调用 ext-menu mixin,但我不确定在 mixin 内声明 $menu-background-color: red 是否会影响是否全局变量。

最佳答案

在您的 .sass 文件中,执行如下操作:

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

在 JS 代码中,只需将 cls: 'my-menu' 分配给 Ext.menu.Menu。

关于extjs4 - extjs 4主题如何使用全局变量创建自定义组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12100609/

相关文章:

javascript - 如何将 HTML 字符串作为 ExtJS 对象/元素加载以使用选择器

extjs - Extjs 4.0.7,编辑器网格-如何获取更新的单元格值?

templates - Drupal 用户配置文件页面中的自定义菜单选项卡

.net - ASP.NET 根据 URL 设置主题

angular - ionic 原色动态变化

css - VS Code SCSS 自动编译成 CSS

javascript - 如何在 ext js 中为标签文本加下划线?

json - ExtJS4 如何从 JSON 设置 TreePanels 根节点

css - 编辑 Bootstrap them SASS 作为新手

css - 将变量传递给 sass mixin 以包含多个属性