【问题标题】:Using hex-code in scss class name to generate css color class of same hex-code在 scss 类名中使用 hex-code 生成相同 hex-code 的 css 颜色类
【发布时间】:2020-07-16 03:59:00
【问题描述】:

我正在尝试定义全局颜色,并且我编写了一个 scss 编译器来将所有颜色编译为其各自的类名,但是当我尝试在我的 html div 中使用它们时,颜色不适用于它。

scss sn-p:

$blue-1: #001233;
$blue-2: #002132;
$blue-3: #004237;
$blue-4: #003027;
$blue-5: #CCCCCC;
$blue-6: #FFFFFF;

$allcolors:$blue-1 $blue-2 $blue-3 $blue-4 $blue-5 $blue-6;

@each $color in $allcolors {
    
    .color-#{nth($color, 1)} {
      color: nth($color, 1);
    }
  }

我在我的 html div 中将其称为

<div class="color-#CCCCCC">TEST</div>

我没有看到我的样式被应用,当我尝试编译它时,我可以看到我的 css 样式编译如下所示

.color-#001233 {
    color: #001233;
}

.color-#002132 {
    color: #002132;
}

.color-#004237 {
    color: #004237;
}

.color-#003027 {
    color: #003027;
}

.color-#CCCCCC {
    color: #CCCCCC;
}

.color-#FFFFFF {
    color: #FFFFFF;
}

任何帮助将不胜感激。

【问题讨论】:

    标签: html css sass colors css-selectors


    【解决方案1】:

    您需要在 CSS 文件中转义 #,因为它是用于 ID 选择器的特殊字符。

    .color-\#CCCCCC {
        color: #CCCCCC;
    }
    &lt;div class="color-#CCCCCC"&gt;TEST&lt;/div&gt;

    您可以相应地调整您的 SCSS 以添加 \

    $blue-1: #001233;
    $blue-2: #002132;
    $blue-3: #004237;
    $blue-4: #003027;
    $blue-5: #CCCCCC;
    $blue-6: #FFFFFF;
    
    $allcolors:$blue-1 $blue-2 $blue-3 $blue-4 $blue-5 $blue-6;
    
    @each $color in $allcolors {
        .color-#{unquote("\\" + $color)} {
          color: $color;
        }
      }
    

    【讨论】:

    • 您可以添加有关它将作为 id 选择器工作的信息。
    • 我不确定,如何在 scss 编译器中添加转义字符,请您帮忙。我也不想使用 ID 选择器
    • @sai 只需将 ` \ ` 添加到您的脚本中,它应该可以工作
    猜你喜欢
    • 2015-05-06
    • 1970-01-01
    • 1970-01-01
    • 2020-11-21
    • 2012-06-04
    • 2021-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多