css - 如何使用 SCSS 加载两个 ag-grid 主题并在它们之间切换?

标签 css sass ag-grid

我试过在我的 main.scss 中使用

@import '~ag-grid-community/src/styles/ag-grid';
@import '~ag-grid-community/src/styles/ag-theme-balham/sass/ag-theme-balham';
@import '~ag-grid-community/src/styles/ag-theme-balham-dark/sass/ag-theme-balham-dark';

然后有条件地申请ag-theme-balhamag-theme-balham-dark到包含 ag-grid 的 div。

但是,如果这两个主题都是通过 scss 加载的,因为它们都建立在一些带有变量的通用主题文件上,似乎一个会覆盖另一个?即使我可以通过 chrome 检查器验证周围的 div 是否有 class="ag-theme-balham-dark",我的网格也会变亮。 (即使 dark 是最后导入的)。

首先成功删除浅色主题的导入会生成深色网格。

如果我切换到使用 ag-grid 的 CSS 而不是 SCSS 确实有效,但 SCSS 的重点是我可以覆盖一些主题变量?

最佳答案

为了解决这个问题,我最终没有导入他们预先构建的主题,而是创建了自定义主题。创建自定义主题仍然很简单,因为您可以使用默认变量作为基础。

@import '~ag-grid-community/src/styles/ag-grid';
@import '~ag-grid-community/src/styles/ag-theme-balham/vars/ag-theme-balham-vars';
@import '~ag-grid-community/src/styles/ag-theme-balham/sass/ag-theme-balham-common';

.ag-theme-balham {
  // $ag-params contains all values for the light theme
  @include ag-theme-balham($ag-params);
}

.ag-theme-balham-dark {
  $background: #2d3436;
  $foreground: #F5F5F5;

  // override the default params with the dark values
  $dark-params: map-merge($ag-params, (
      background-color: $background,
      foreground-color: $foreground,
      secondary-foreground-color: $foreground,
      odd-row-background-color: darken($background, 3),
      header-background-color: darken(#636e72, 30),
      header-foreground-color: $foreground,
      header-cell-hover-background-color: lighten($background, 5),
      header-cell-moving-background-color: lighten($background, 5),
      border-color: #424242,
      hover-color: lighten($background, 7)
    ));

    @include ag-theme-balham($dark-params);
}

https://stackblitz.com/edit/ag-grid-scss-themes?embed=1&file=src/styles.scss

根据您在 ag-grid 中使用的功能,您可能需要覆盖更多的 $ag-params 值。我只覆盖了示例所需的那些。

关于css - 如何使用 SCSS 加载两个 ag-grid 主题并在它们之间切换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57875577/

相关文章:

javascript - JS/Jquery 随机定位div

html - 页眉和页脚之间的 100% 高度包装(第一部分设置为 100% 高度)

css - compass Sprite

css - IE11 中的 Scss 缩放图像

vue.js - 使用 Ag-Grid 刷新动态标题名称

html - 33% + 33% + 34% 与 iOS 上的 100% 宽度不同

javascript - 消除首屏内容中阻止呈现的 JavaScript 和 CSS - Wordpress

html - 如何拥有更小的按钮 css

html - Ag-grid 单元格在编辑后显示错误的 css 格式

angular - 如何在 Angular 轮询期间保持过滤器完好无损?