避免CSS中的重复常量

时间:2020-03-05 18:43:51  来源:igfitidea点击:

是否有任何有用的技术来减少CSS文件中常量的重复?

(例如,一堆不同的选择器都应应用相同的颜色或者相同的字体大小)?

解决方案

回答

我们可以在html元素中使用多重继承(例如,<div class =" one two">`),但是我不知道在CSS文件中包含常量的方法。

该链接(在搜索问题时首次找到)似乎对这个问题有相当深入的了解:

http://icant.co.uk/articles/cssconstants/

回答

我们应该用逗号分隔每个ID或者类,例如:

h1,h2 {
  color: #fff;
}

回答

据我所知,如果不以编程方式生成CSS文件,就无法在一个且只有一个位置定义我们喜欢的蓝色阴影(#E0EAF1)。

我们可以很容易地编写一个计算机程序来生成文件。执行一个简单的查找和替换操作,然后另存为.css文件。

从此source.css转到

h1,h2 {
  color: %%YOURFAVORITECOLOR%%;
}

div.something {
  border-color: %%YOURFAVORITECOLOR%%;
}

到这个target.css

h1,h2 {
  color: #E0EAF1;
}

div.something {
  border-color: #E0EAF1;
}

用这样的代码(VB.NET)

Dim CssText As String = System.IO.File.ReadAllText("C:\source.css")
CssText = CssText.Replace("%%YOURFAVORITECOLOR%%", "#E0EAF1")
System.IO.File.WriteAllText("C:\target.css", CssText)

回答

元素可以属于多个类,因此我们可以执行以下操作:

.DefaultBackColor
{
    background-color: #123456;
}
.SomeOtherStyle
{
    //other stuff here
}
.DefaultForeColor
{
    color:#654321;
}

然后在内容部分的某个地方:

<div class="DefaultBackColor SomeOtherStyle DefaultForeColor">Your content</div>

这里的弱点是它在体内变得非常罗and,并且我们不太可能将其仅列出一次颜色。但是我们可能只能进行两次或者三遍,并且可以将这些颜色组合在一起,也许可以在自己的工作表中进行。现在,当我们要更改配色方案时,它们就在一起了,并且更改非常简单。

但是,是的,我对CSS的最大抱怨是无法定义自己的常量。

回答

就个人而言,我只使用逗号分隔的选择器,但是有一些用于以编程方式编写css的解决方案。也许这对于简单需求来说有点矫kill过正,但是请看一下CleverCSS(Python)

回答

CSS变量(如果已在所有主流浏览器中实现的话)有一天可能会解决此问题。

在此之前,我们将不得不复制和粘贴,或者使用其他人建议的任何类型的预处理器(通常使用服务器端脚本)。

回答

我们可以像使用更少的那样使用动态css框架。