html - 将颜色值分配给 css 变量

标签 html css typescript vuejs2

在我的 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%

https://typescript-play.js.org/#code/MYGwhgzhAEDCD2J4CcCqAXAliGBvAUAJATphbDQTBggCmCSy0AvNABTCIoAStAHgC5K6ZJgB2AcwA00AA61kwWmPRCxAVwC2AIwUBKFgD5oBQoQD0AKmiZ0AchgALMMgAm0dPGgSvAM2TwmtCO-NAAtMaOECDQYMDA6shktCAAnpRemN5+AUEhfOHGyBLahdBitADu0NwAygAyZfnQluZEhJxiJNAASgDiAEIswfwAKvA9JRxcyLx8egDc7Zi+7P1DzJvl6iAgBsi06Ili0JyMc0tmnd0A2o4yEDIgALrDxdoATFEgbDfrAHTIGQA6S9Qb-bTPRbLVZseSKZToaDGAAMBlMV3gXSRFUq9UwEkc6AqUGGMQA1OwAIwolHhaB7FrseFKFTQczQGloy5mA5HZAnb7jOZse6UGS4-GE4m0KDQswAXxhzIUrKRAB5oGiTO0OljupKCUSSTBWBSGUy4arEezObT5bzDsdgtFhfxRQ8JVUpcbZRAHUrHfyTmcePxLgqlkr8OYOc0ItB3k1ok1+Phrkj8uNJqVWKL+EISKJJAZmMZTBnKI4UOhnGJXD1aBJQqxzAA9ADEAH5fmAwr4ADquKG9-tDkc3PuD4d6AAk5kwSyIldxc2G+UBtFk4CUbAg1eQtbA9cbzb4MjYmkLInEoOQ1+LoIkD9vMm0L5LRh1QedTEpf+8aBKQkIDoFKSltAjaFl31JEDggHYkVbTse0nMdh1wD4FT0Udp2eTDsNw8cCLnBd-n4WhgDYVd+HlPlf1lRD2i7b9eSEWQXAgWgAEkVDYeDEJuKlnhkKkADY9CkXVnzkTieL4gSQHQG4PhEzkJKksxCHfWTkC43j0H4xilJuABmNTxL0dpA0INQdhAKMl0rd4vhTPN3gAQWQe9oBuDQdAUCUtF0IFtgC5AoS-CtYMTKk3hKLzkBuFFXg5D4AFZ0suSsJDi1hPO8oTUugDKspg7EwLyxMEsK1TbVKpc9QqzQwD4BgUGGABZMhHH+Fq+H4qkZFyt8qXlStNHEdqmFYbraz68RBuGobKugprukaPN+um0DJrEaaDDSxrK2oEAEnAdBaG4YY2FLctlUvVqds2Vg9oOxMnQFLUeRWdhkDyrZtpmfZPpONhcvpbQxttR62pmek3uBn7YQhl7oCBxgQeDEr-jpSk2Ch+l-sO9gMY6sJ0ampH2nor6ABZcdAwb6VyknYZ2inEcxiNjpi07zuSWobru1jfvZ+G0a5lAsedFFkfYRpNRRf50vRXVabBsmmE5qnMZhrXdt16WeRsjXSae+Gdf24GYY+RnOYtxgEaN5B5UjfByu6XxxBoa7WH5nZkm4W6mTEuXPaRb2xBoIX-ZoAXLtqEPrC5bKYqjmhNugRoU9pRqxYzkBrqVtWfy+m5C+uylTLDmRC9qOufZAepngjIgzYrpvuEb6OQAb6BC5bxyPcrIV4DXPNHDs8KHmnkKnjn-Qoojmp11tGvw-WpFY8oW1U5XrOYg5feiDF00tm1DEzYAAw7WdcE8EV6j0BV78f91n9fh-x4-l-r7ble3B1C0A+EmPMshF6hQAI6QJkKoMKIURYYkrEpAAWgoLwrANRamgCxJElI4pCHQDyHK6AADyFQyToHQQEZEnJcEMmoRg+khDGE0PgPLcG5DKGajihyCSH1sayCZlA+ksgDDWDEkyCQ3DaCcJkRQ2g0BeH1Rll9KB8jZHKJKuvNRJxhH41ERTcRloPjrxZrIiR0AxI8jNrIHmHst7lCqAARWGIrLUKsGE52pKBWoBghCNEpELCmPjahpwqriAACsMMx1hGgU1xC4iJ3QZo1GAaAqY0SvSVBcTIKu9COSmXGjFECrAgEgPeNRKoUScl5JqCUiquZ0mVKyTUup+SWG6MuDfO+38RSuy-u-AaEgX5vx-gNbQf9h7phisMm6ggEFLzLN+UeLZoBzV6gEdQ9Y2AFGsKVPQ-xPC1BvJINglkemgxGHwf4dBJC1hYFsOKLEABEKJXmgWaEIfIw8rDQAAKIADkAAi0BuKdSifUAFnVgWjA8qMbiZCgUtDaB7IAA

关于html - 将颜色值分配给 css 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56843791/

相关文章:

jquery - 如何使用 jquery 或 ajax 每隔 10 秒刷新一个 div

javascript - 是否可以将 JQuery 'unslider' 配置为仅更改背景?

html - GET 请求后访问对象属性时出错?

javascript - 如何生成 Typescript 输出到正确的目的地?

angular - angular2中的继承

javascript - 无法将 .swf 文件垂直对齐到中间

java - .jd 文件到底有什么用?

javascript - 在 2 个表中隐藏垂直滚动条,但在一个表中允许完全滚动

css - 为什么 Bootstrap 主题没有在 nodejs 上使用 https 模块上传?

jquery - 将鼠标悬停在链接上时使用 slideDown 效果更改 div 的背景