在我的 CSS 中,我有几个颜色变量,例如:
$bkg-color: #ffffff
白色是我想要的默认颜色,但 $bkg-color 也可以根据用户创建和保存的内容自定义为不同的颜色。所以在我的 typescript 中我有:
backgroundColor?: string = '';
我的get调用响应数据设置为pageDetails然后我检查
if(pageDetails.backgroundColor) {
this.backgroundColor = pageDetails.backgroundColor;
}
我无法直接将背景颜色类绑定(bind)到 html,因为我的页面内容是通过 v-html='displayedHtml'
如何设置 $bkg-color: this.backgroundColor
(如果存在 || 设置默认颜色为白色)。
我正在使用 vue 和 typescript
我相信我可以像这样设置默认值:$bkg-color: #ffffff !default;
但是如何根据我的数据进行分配是我有点迷茫的地方。
最佳答案
How can i set $bkg-color: this.backgroundColor (if exists || set default color of white).
不幸的是,Scss 变量在运行时不存在,它们仅在编译时存在,然后 python 编写的编译器将它们替换为它们在 css 样式表中的值。如果您不支持 Internet Explorer 您可以使用 css 变量
来解决这个可以在运行时动态更改的问题。
如果我误解了这个问题,请告诉我,我会进行修改。
编辑: https://jsfiddle.net/njsrLywt/这是一个展示在运行时更改 css 变量的演示。
EDIT2:您也将无法再使用亮化/暗化,但是您可以使用运行时存在的亮化/暗化的 javascript 实现。另外在旁注中,您应该避免使用变亮/变暗来支持 scale-color ,因为它可以缩放 100 的剩余百分比
EDIT3:这是用 javascript 100% 完全不可变的 FP 样式实现的比例颜色的快速实现,按以下方式使用它
ColorUtils.scaleColor("#294e80", -35); //darken 35%
ColorUtils.scaleColor("#F6F6F6", 35); // lighten 35%
关于html - 将颜色值分配给 css 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56843791/