我正在处理一个相当长的CSS文件。我知道客户可能会要求更改配色方案,并想知道:是否可以将颜色分配给变量,这样我就可以更改一个变量,使新颜色应用于所有使用它的元素?
请注意,我不能使用PHP动态更改CSS文件。
我正在处理一个相当长的CSS文件。我知道客户可能会要求更改配色方案,并想知道:是否可以将颜色分配给变量,这样我就可以更改一个变量,使新颜色应用于所有使用它的元素?
请注意,我不能使用PHP动态更改CSS文件。
当前回答
Yeeeaaahhh……你现在可以在CSS.....中使用var()函数
好消息是你可以使用JavaScript访问来改变它,这也会在全局范围内改变…
但是如何申报呢?
这很简单:
例如,你想要将#ff0000赋值给var(),只需简单地将它赋值在:root中,还要注意——:
:root {
--red: #ff0000;
}
html, body {
background-color: var(--red);
}
好的方面是浏览器支持不差,也不需要像LESS或SASS那样编译才能在浏览器中使用…
另外,这是一个简单的JavaScript脚本,它将红色值更改为蓝色:
const rootEl = document.querySelector(':root');
root.style.setProperty('--red', 'blue');
其他回答
我不清楚为什么不能使用PHP。然后,您可以根据需要简单地添加和使用变量,将文件保存为PHP文件,并链接到. PHP文件作为样式表,而不是.css文件。
它不一定是PHP,但你明白我的意思。
当我们需要编程的东西时,为什么不使用编程语言,直到CSS(可能)支持变量之类的东西?
还有,看看Nicole Sullivan的面向对象的CSS。
CSS本身不使用变量。但是,你可以使用另一种语言,比如SASS,用变量来定义你的样式,并自动生成CSS文件,然后你可以把它放在网上。注意,每次对CSS进行更改时都必须重新运行生成器,但这并不难。
没有简单的CSS解决方案。你可以这样做:
在CSS文件中找到background-color和color的所有实例,并为每个独特的颜色创建一个类名。 .top-header {color: #fff;} .content-text {color: #f00;} .bg-leftnav {background-color: #fff;} .bg-column {background-color: #f00;} 接下来,浏览网站上涉及到颜色的每个页面,并为颜色和背景色添加适当的类。 最后,删除CSS中除了新创建的颜色类之外的任何颜色引用。
CSS的“少”Ruby宝石看起来棒极了。
http://lesscss.org/
仅靠CSS是不可能实现的。
你可以使用JavaScript,也可以使用LESS .js,这将把LESS变量实时呈现到CSS中,但它仅用于开发,并且为实际使用增加了太多的开销。
你可以使用CSS最接近的是使用属性子字符串选择器,像这样:
[id*="colvar-"] {
color: #f0c69b;
}
并设置您想要调整为以colvar-开头的名称的所有元素的id,例如colvar-header。然后,当您更改颜色时,所有ID样式都会更新。这是你单独使用CSS所能达到的效果。