【问题标题】:Using sass lighten functions with variable not working使用带有变量的 sass lighten 函数不起作用
【发布时间】:2019-12-02 12:40:19
【问题描述】:

我在我的项目中使用 SASS

如果我的变量代码在这里

:root, [data-theme="default"] {
    --text-color: #383143;
}
$text-color: var(--text-color);

我正在使用具有以下减轻功能的变量,

body {
    color: lighten($text-color, 10%);
}

我收到以下错误,

错误:lighten($color, $amount) 的参数 $color 必须是颜色 在 assets/scss/base/typography.scss 第 10 行,函数 lighten

如何使用该变量的 lighten 函数?我需要使用 --text-color: #383143; 该格式来实现颜色切换器的目的。

【问题讨论】:

  • 你不能,SASS看不到CSS变量,CSS在后面
  • SASS只能接受lighten函数中的颜色值#383143。

标签: css sass


【解决方案1】:

您不能在 CSS 变量中使用 SASS 变量,因为这些变量是在 CSS 运行之前编译的。为了解决这个问题,您可以移动 CSS 变量以由 SASS 定义,如下所示

$text-color: #383143;
:root, [data-theme="default"] {
  --text-color: #{$text-color};
}

【讨论】:

  • 它不返回颜色值。 [data-theme=dark] { --text-color: $text-color; }
  • 哦,忘了必须用#{} 括起来。查看我的更新答案,或在此处阅读更多信息:sass-lang.com/documentation/breaking-changes/css-vars
  • 哇!完美..非常感谢
  • 你知道如何在可变格式var(--text-color)中使用lighten函数吗?
  • Lighten 也在 Sass 编译上运行。所以你要做的是传递 $text-color 而不是 CSS var,因为该变量在 Sass 中不可用
猜你喜欢
  • 2021-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-16
  • 1970-01-01
  • 1970-01-01
  • 2016-10-05
相关资源
最近更新 更多