Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在运行时更改Typescript中CSS变量的值_Css_Angular_Typescript - Fatal编程技术网

在运行时更改Typescript中CSS变量的值

在运行时更改Typescript中CSS变量的值,css,angular,typescript,Css,Angular,Typescript,我有一个angular 4 web应用程序,需要根据从后端获取的颜色和图像URL的值设置样式。我已经成功地将web应用程序配置为使用从服务器发送的图像URL来加载所需的图像,但颜色值的问题更具挑战性。应用程序中很多地方使用的原色都作为css变量存在于styles.css文件中 :root { --grape: #4b286d; --purple: #651f97; --purp-button-on-hover: #6d4299; --accessibility-green: #248700; -

我有一个angular 4 web应用程序,需要根据从后端获取的颜色和图像URL的值设置样式。我已经成功地将web应用程序配置为使用从服务器发送的图像URL来加载所需的图像,但颜色值的问题更具挑战性。应用程序中很多地方使用的原色都作为css变量存在于styles.css文件中

:root {
--grape: #4b286d;
--purple: #651f97;
--purp-button-on-hover: #6d4299;
--accessibility-green: #248700;
--green-button-on-hover: #36ad0a;
--telus-grey: #595859;
--text-grey: #54595f;
--bg-grey: #e2e2e2;
--secondary-bg: #f5f5f5;
--white: #fff;
--almost-white: #f3f3f3;
--footer-bg: #333333;
--footer-copyright: #595853;
--select-title: #4a4a4a;
--pale-grey: #f5f6f7;
--select-gradient: linear-gradient(to bottom, #f2f2f2, #d4d4d4);
--select-border: #979797;
--font-type: "Helvetica Neue", helvetica, arial, sans-serif;
--font-light: 300;
}

在typescript中,我希望能够将这些值更改为首次加载应用程序时从服务器获得的值。我发现的方法似乎包括获取HTMLElement并将其样式颜色更改为我想要的颜色,这意味着我必须在整个应用程序中逐个更改每个元素的颜色。有没有更好的方法来实现这一点?谢谢。

因为这些值是在根级别定义的,所以您可以使用文档更新它们。我不确定如何以angular方式访问文档,但一旦您拥有文档,您可以执行以下操作:

document.documentElement.style.setProperty(`--${your-variable}`, value + suffix); //suffix may be px or ''
这样,您将直接设置css变量,该变量将在所有位置生效,而不必针对单个元素