使用 css 变量的正确方法

Using css variables correct way

我需要使用 css 个变量:

:root {
   --main-bg-color: brown;
}
@mixin themeChanges-background {
    background-color: var(--main-bg-color);
}
.classOne {
    ul {
        @include themeChanges-background();        
    }
}

显示为

ul{ background-color: var(--main-bg-color);}

似乎无法弄清楚我哪里出错了,因为它没有给我正确的值。 预期是:

ul {background-color: brown;}

我认为您正在混合(没有双关语意)CSS 与 SASS/SCSS 或其他 CSS 预处理器。

@mixin 由 CSS 预处理器使用,而不是本机 CSS。在那种情况下,您可以按照自己的方式声明 mixins,并且变量如下:

$main-bg-color: brown;

@mixin themeChanges-background {
  background-color: $main-bg-color;
}

.classOne {
  ul {
    @include themeChanges-background;
  }
}

在本机 CSS 中,mixins 就像您的其他变量一样完成:

:root {
  --main-bg-color: brown;
  --themeChanges-background: {
    background-color: var(--main-bg-color);
  }
}
.classOne {
  ul {
      @apply --themeChanges-background;        
  }
}

只有一个小问题,@apply 是一项实验性功能,isn't supported by any browsers out of the box。如果您确实需要,可以使用 "Experimental web platform features" 功能标志在 Chrome 中启用它。我建议坚持使用 SASS 或 SCSS,但如果您想让其他人看到您的样式。