如何解决这个 sass 插值问题

Posted

技术标签:

【中文标题】如何解决这个 sass 插值问题【英文标题】:How to I solve this sass interpolation issue 【发布时间】:2019-12-18 16:22:37 【问题描述】:

警告:您可能不是要在这里插值中使用颜色值白色。 它可能最终表示为白色,这可能会产生无效的 CSS。 将颜色名称用作字符串或映射键时始终引用颜色名称(例如,“white”)。 如果你真的想在这里使用颜色值,使用'"" + $colorName'。

   ╷
93 │       .text-#$colorName-#$shade 
   │               ^^^^^^^^^^
   ╵
    src\assets\styles\scss\_palette.scss 93:15  @import
    stdin 44:9  

我按照建议尝试了类似的方法,

.text-#'"" + $colorName'-#$shade 

但是仅仅添加引号是行不通的。 我正在使用角度 cli。

【问题讨论】:

你试过.text-#"" + $colorName-#$shade 吗? 【参考方案1】:

最近升级到 Angular9 并面临同样的问题。在我的情况下更新这个

.#$colorName#$hue-bg 
        background-color: $color !important;

.#"" + $colorName#$hue-bg 
        background-color: $color !important;

工作。

【讨论】:

【参考方案2】:

在 GitHub 问题 (https://github.com/sass/libsass/issues/2409#issuecomment-311932161) 中找到此帖子。 根本问题是未引用的映射键。

(归功于@xzyfer。)

$testMap: (
-    white: (color: white) // white is a Color object
+    "white": (color: white) // "white" is a String object
);

@each $key in map-keys($testMap) 
    .test-btn-#$key 
        $colors: map_get($testMap, $key);

        color: map-get($colors, color);
    

【讨论】:

【参考方案3】:

这应该处理警告:

#'.text-' + $colorName + '-' + $shade

【讨论】:

以上是关于如何解决这个 sass 插值问题的主要内容,如果未能解决你的问题,请参考以下文章

macOS Catalina 上的 Node-sass 无法正常工作。我应该如何解决这个问题?

Sass 插值不起作用

springMVc中事务控制无效,循环插值时候一样无法同步数据如何解决?

三角形内部线性插值方法

如何解决“属性内的插值已被删除。使用 v-bind 或冒号速记”? Vue.js 2

如何解决“您需要安装 Ruby 和 Sass 并在您的 PATH 中才能执行此任务”警告?