是否可以将css变量保存到scss变量中?

是否可以将css变量保存到scss变量中?,css,sass,Css,Sass,我更喜欢使用scss变量,但它们不能在“运行时”更改。例如,如果我有一个scss变量$color:#000;我想这样改变它的值,那么它就不起作用了: html{ background-color: $color; &.orange{ $color: orange; } } 另一方面,当我使用css变量时,它将: :root{ --color: #000; } html{ background-color: var(--color); &.oran

我更喜欢使用scss变量,但它们不能在“运行时”更改。例如,如果我有一个scss变量$color:#000;我想这样改变它的值,那么它就不起作用了:

html{
  background-color: $color;
  &.orange{
    $color: orange;
  }
}
另一方面,当我使用css变量时,它将:

:root{
  --color: #000;
}
html{
  background-color: var(--color);
  &.orange{
    --color: orange;
  }
}
我知道为什么我一个人不能解决这个问题。所以我的问题是:是否有可能以某种方式将css变量存储在scss变量中

我已经尝试过的:

:root{
  --color: #000;
}

$color: var(--color);
$color: ${'var(--color)'};
$color: "var(--color)";

你知道如何在没有自定义函数的情况下解决这个问题吗?

因此与@Pete合作

您可以将css变量存储在scss variable中:

:root{
  --color: #000;
}

$color: unquote('var(--color)'); 

html{
  background-color: $color;
}

我想为我的页面设置主题,从我的观点来看,最简单的解决方案是更改我的主要变量的值。但只有css变量更改可以重新设计颜色运行时。这应该可以工作:
$color:'var(--color)'
然后您可以像这样使用它:
.color{color:$color;}
。对于橙色覆盖,您不能使用sass变量,您可以将其作为正常覆盖:
&.orange{--color:orange;}
}Hi@Pete!在live页面上的结果是:背景色:“var(--color)”,所以我用unquote=>
$color:unquote('var(--color'))修改了您的代码现在它可以工作了。谢谢你能写一个关于这个的总结作为回答吗?:)没关系,因为你必须做额外的事情,你应该回答你自己的问题,你为什么要这样做?有什么好处?您可以在SCS中需要动态值的任何位置使用
var(--color)
,而不是$color。