是否有可能在 SASS 中使用 CSS 变量?

2023-12-23

我有不同的树枝模板,应该用不同的颜色渲染。 除了颜色主题之外,每个模板通过 SASS 的样式都是相同的。 这就是为什么我想在每个模板中设置一个 CSS 变量。 我认为 SASS 变量看起来像这样:

$pim-color: var(--color-primary);

我也已经尝试过类似以下的操作:

@function color($color-name) {
    @return var(--color-#{$color-name});
}

$prim-color: color(primary);

但这似乎只是返回一个在我的 CSS 中不起作用的字符串。

你有什么想法我可以如何解决这个问题吗? 亲切的问候,菲尔。


基本上,在 SASS 中,您无法将完整的变量字符串(css-name + css-value)存储到 var 中。但是您可以存储 css 变量的名称并使用 SASS 变量来构建/写入 css 变量。

注意:在这种情况下,您必须在 css-variables/css-code 中单独设置颜色。现在您可以使用 SASS 变量来编写 css 变量。

基本示例:


//### SASS

$var-color-primary: --color-primary;

:root {
    #{$var-color-primary}: red;
}

.class {
    color: var($var-color-primary);
}



//###> compiles to css

:root {
  --color-primary: red;
}

.class {
  color: var(--color-primary);
}


按照您在问题中的想法准备额外的 SASS 地图和 SASS 函数,您可以更轻松地使用它:


//### SASS

// setup your colors in a map
$css-color-vars: (
    primary: red,
    secondary: blue,
);

// automatic write colors of map to css variables using a SASS loop
:root {
    @each $color_name, $color in $css-color-vars{
        --color-#{$color-name}: #{$color};      
    }
}

// create function to easy access to css variables
@function css-color-var( $color ){
    @return var(--color-#{$color});
}

// use function to advice css variables 
.class {
    color: css-color-var( primary );
}


//###> compiles to css
:root {
  --color-primary: red;
  --color-secondary: blue;
}

.class {
  color: var(--color-primary);
}


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否有可能在 SASS 中使用 CSS 变量? 的相关文章

随机推荐

  • Android Studio 0.8 - 不再运行自定义任务

    我刚刚从 Android Studio 0 6 升级到 0 8 3 在 Linux Mint 15 上 现在我的构建无法按预期运行 在我的 gradle 文件中 我有很多自定义任务 它们执行预构建步骤 复制文件 调整图像大小等 lots o
  • Chrome 扩展程序测试

    有人有 Chrome 扩展测试的经验吗 例如 我想创建一个使用的扩展 弹出浏览器操作 并自动执行一个测试用例来检查 单击时弹出窗口的行为 铬问题 http code google com p chromium issues detail i
  • Elixir 中的快速不区分大小写排序

    Elixir 程序员们大家好 我有大约 2 500 首音乐曲目的列表 我想按不同的参数 例如曲目标题 对它们进行排序 排序应不区分大小写 下面的代码可以工作 但需要大约 100 毫秒到 130 毫秒来对列表进行排序 有更快的方法吗 对我来说
  • 以编程方式添加 ARSCNView

    如何以编程方式添加 ARSCNView 如何设置宽度 高度和约束 class ViewController UIViewController var sceneView ARSCNView let configuration ARWorld
  • 由于环境错误而无法安装软件包:[WinError 5] 访问被拒绝:

    我有 Windows 10 我已完成 Tensorflow 安装 有用 它说 你好 Tensorflow 但这一切都在它面前 2018 08 18 18 16 01 500579 I T src github tensorflow tens
  • Django:向 UpdateView 生成的表单字段添加额外属性

    我使用的自定义用户是 Django AbstractUser 的子类 我试图存档的是允许用户更新他们的数据 一切正常 但表单看起来很难看 下面是我的代码 类属性未添加到表单中 forms py 简化 class AccountEditFor
  • Decorator() 得到了意外的关键字参数

    我在 Django 视图上遇到此错误 TypeError at web host 1 decorator got an unexpected keyword argument host id Request Method GET Reque
  • Fabric.js 动画对象/图像

    大家好 这是我一直在使用的代码 它将一个物体从 A 移动到 B 我想做的是让它移动到多个点 所以从起始位置 A gt B 然后从 B gt C 等等 也许有一些包含坐标集的变量 这些坐标将作为参数输入到某些动画函数中 但我尝试的任何操作都只
  • 通过映射减少图像尺寸

    我有一个 png 图像 其中有四种颜色 如果我将图像转换为 numpy 数组 我会得到一个具有以下尺寸的数组 length X height X 3 with length height 如何通过映射颜色来减少维度 这是当前的结构 arra
  • MapView:找不到方法 B 引用的类 A

    屏幕上有3个按钮 开始 查看地图 停止 当我单击 查看地图 时 它应该转到显示地图的新屏幕 但出了点问题 应用程序被强制关闭 我不断收到无法找到方法 B 引用的类 A 错误 拜托请有人纠正它 我已经被这个问题困扰三天了 Main xml
  • typedef std 容器?

    我想做 typedef deque type error use of class template requires template argument list type
  • 编写 Z80 汇编程序 - 词法 ASM 并使用组合构建解析树?

    我对编写汇编器的概念非常陌生 即使在阅读了大量材料之后 我仍然很难理解几个概念 将源文件实际分解为令牌的过程是什么 我相信这个过程称为词法分析 我已经到处搜索有意义的真实代码示例 但我找不到如此简单的代码示例 非常受欢迎 解析时 信息是否需
  • MATLAB 中的复制求和运算符

    我正在尝试在 MATLAB 中对以下时间相关函数进行建模 其中 gamma beta 和 delta 是常数 我不确定进行求和的最佳方法是什么 我可以制作 u t 和 y t 函数句柄 但 symsum 只能用于符号 我唯一的选择是使用 f
  • 浮点差异取决于调试构建的运行方式

    我正在使用调试版本并在同一台计算机上获得不同的结果 无论我是否在调试器下运行 我正在使用优秀的 TestDriven Net 来运行单元测试 使用 TestDriven Net 或外部 NUnit 运行程序 运行 会产生相同的结果 使用 T
  • .NET 日志框架 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Java:解析 ISO_DATE / ISO_OFFSET_DATE

    对于 REST Web 服务 我需要返回带时区的日期 无时间 显然不存在这样的东西ZonedDate在 Java 中 仅LocalDate and ZonedDateTime 所以我用的是ZonedDateTime作为后备 将这些日期转换为
  • 在 ASP 中上传到 IIS 5.1

    首先 我知道 XP 不太擅长托管 但由于该网站仅供我个人使用 而且我已经拥有 XP 许可证 这就是我正在使用的 我正在使用来自的纯asp上传脚本链接文本 http www asp101 com articles jacob scriptup
  • Ubuntu 中的 MySQL JDBC jar 文件在哪里?

    我已经通过安装 MySQL 5 5 32apt get install进入 Ubuntu 13 04 我想在 Java 项目中使用它 为此我必须有 MySql 连接器 jar 我找不到它 我尝试过locate mysql jar但它没有发现
  • Scalaz 中 \/ 的“ap”有什么作用?

    我正在看析取 https github com scalaz scalaz blob scalaz seven core src main scala scalaz Either scalascalaz 的类型和我注意到的方法ap Appl
  • 是否有可能在 SASS 中使用 CSS 变量?

    我有不同的树枝模板 应该用不同的颜色渲染 除了颜色主题之外 每个模板通过 SASS 的样式都是相同的 这就是为什么我想在每个模板中设置一个 CSS 变量 我认为 SASS 变量看起来像这样 pim color var color prima