当前位置:  开发笔记 > 后端 > 正文

在.CSS文件中创建一个变量,以便在该.CSS文件中使用

如何解决《在.CSS文件中创建一个变量,以便在该.CSS文件中使用》经验,为你挑选了4个好方法。

并不要求选择器的所有样式都驻留在单个规则中,并且单个规则可以应用于多个选择器...因此请将其翻转:

/* Theme color: text */
H1, P, TABLE, UL
{ color: blue; }

/* Theme color: emphasis */
B, I, STRONG, EM
{ color: #00006F; }

/* ... */

/* Theme font: header */
H1, H2, H3, H4, H5, H6
{ font-family: Comic Sans MS; }

/* ... */

/* H1-specific styles */
H1
{ 
   font-size: 2em; 
   margin-bottom: 1em;
}

这样,您可以避免重复在概念上相同的样式,同时还要清楚它们影响文档的哪些部分.

注意在最后一句话中强调"概念上"......这只是在评论中提出来的,所以我会稍微扩展一下,因为我看到人们多年来一遍又一遍地犯同样的错误 - 甚至早于CSS的存在:两个共享相同值的属性并不一定意味着它们代表相同的概念.晚上的天空可能会呈现红色,西红柿也是如此 - 但由于同样的原因,天空和番茄不是红色,它们的颜色随着时间的推移而独立变化.出于同样的原因,仅仅因为你碰巧在样式表中有两个元素给出相同的颜色,大小或位置并不意味着它们总会分享这些价值观.一个天真的设计师使用分组(如此处所述)或可变处理器(如SASS或LESS)来避免重复值,从而使未来的样式更改难以置信地容易出错; 在寻求减少重复,忽略其当前值时,始终关注样式的上下文含义.



1> Shog9..:

并不要求选择器的所有样式都驻留在单个规则中,并且单个规则可以应用于多个选择器...因此请将其翻转:

/* Theme color: text */
H1, P, TABLE, UL
{ color: blue; }

/* Theme color: emphasis */
B, I, STRONG, EM
{ color: #00006F; }

/* ... */

/* Theme font: header */
H1, H2, H3, H4, H5, H6
{ font-family: Comic Sans MS; }

/* ... */

/* H1-specific styles */
H1
{ 
   font-size: 2em; 
   margin-bottom: 1em;
}

这样,您可以避免重复在概念上相同的样式,同时还要清楚它们影响文档的哪些部分.

注意在最后一句话中强调"概念上"......这只是在评论中提出来的,所以我会稍微扩展一下,因为我看到人们多年来一遍又一遍地犯同样的错误 - 甚至早于CSS的存在:两个共享相同值的属性并不一定意味着它们代表相同的概念.晚上的天空可能会呈现红色,西红柿也是如此 - 但由于同样的原因,天空和番茄不是红色,它们的颜色随着时间的推移而独立变化.出于同样的原因,仅仅因为你碰巧在样式表中有两个元素给出相同的颜色,大小或位置并不意味着它们总会分享这些价值观.一个天真的设计师使用分组(如此处所述)或可变处理器(如SASS或LESS)来避免重复值,从而使未来的样式更改难以置信地容易出错; 在寻求减少重复,忽略其当前值时,始终关注样式的上下文含义.



2> Giorgi..:

您可以通过使用Less CSS来实现它.


甚至更多Sass =)http://sass-lang.com/

3> Tim Sullivan..:

不,但Sass这样做.它是一个CSS预处理器,允许您使用大量快捷方式来减少需要编写的CSS数量.

例如:

$blue: #3bbfce;
$margin: 16px;

.content-navigation {
  border-color: $blue;
  color:
    darken($blue, 9%);
}

.border {
  padding: $margin / 2;
  margin: $margin / 2;
  border-color: $blue;
}

除了变量之外,它还提供了嵌套选择器的能力,保持逻辑分组:

table.hl {
  margin: 2em 0;
  td.ln {
    text-align: right;
  }
}

li {
  font: {
    family: serif;
    weight: bold;
    size: 1.2em;
  }
}

还有更多:mixins有点像函数,有能力从另一个继承一个选择器.它非常聪明且非常有用.

如果您使用Ruby on Rails进行编码,它甚至会自动将其编译为CSS,但也有一个通用编译器可以按需为您执行.


Sass不依赖于rails.你只需要ruby来运行将你的sass源转换为css的脚本.否则,您的网站可以使用您选择的任何语言构建.

4> sblundy..:

你不是第一个想知道,答案是否定的.艾略特对此有一个很好的咆哮:http://cafe.elharo.com/web/css-repeats-itself/.您可以使用JSP或其等价物在运行时生成CSS.

推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有