避免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框架。