【问题标题】:Compile one less-file into many css-files将一个less-file编译成多个css-files
【发布时间】:2015-01-20 10:52:19
【问题描述】:

假设我们有一个main.css,里面有如下内容(当然这个场景是非常简化的):

body {
  background-color: #ffffff;
}

但是,也有一些主题具有不同的背景颜色。 所以我们最终有五个不同的 css 文件:

  • main.css
  • main_blue.css
  • main_red.css
  • main_yellow.css
  • main_green.css

但现在它真的不再可维护了。如果我必须更改 main.css 中的某些内容,我还必须更改其他文件!

所以我在网上浏览了一下http://lesscss.org/,看起来很有希望。 但是,我也不知道如何将一个less-file 编译成多个css 文件。我也不知道这是否是正确的方法。 不过,在 css 文件顶部声明变量的想法让我很高兴。

所以我想知道:LESS 是否能够解决这个问题? (如果是这样,怎么做?) 或者有没有更好的方法来解决这个问题?

【问题讨论】:

  • Less 可以帮助你。您可以在 main.less 文件中使用变量,然后为每个单独的主题文件中的变量设置不同的值(以及对主 Less 文件的导入引用),并且在编译时,Less 编译器可以为您创建不同的主题文件,具体取决于关于变量值。不幸的是,我是用手机输入的,所以无法提供工作示例。
  • 正如@Harry 所说,您可以使用变量。制作一个像@mainColor: #someHEXValue; 这样的变量,并在整个样式表中使用该变量。而且很容易改,比如@mainColor: #newHEXValue;
  • @Harry 谢谢!我想我完全明白你的意思。所以我在 main.less 中定义变量,当我导入它时,我只需更改变量(如有必要)
  • @Vucko 这对我来说已经很清楚了。我没有掌握的是导入文件然后只更改变量的想法。
  • @fabigler:是的,伙计。就像 Vucko 在上面发布的一样,你的 main.less 可以说 background-color: @theme-color,在蓝色主题文件中你指定 @theme-color: #00f;,在红色主题文件中指定 @theme-color: #f00;。 Less 不会延迟加载变量,因此为变量定义的最新值会胜出。

标签: css less


【解决方案1】:

感谢 Harry 的评论,我最终得到了以下解决方案: 对于每个主题,只需创建另一个包含以下内容的 .less 文件:

@import "main.less";
@mainbackground-color: #96c8fd;

请注意,导入后会有更多变量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-26
    • 2015-12-04
    • 1970-01-01
    • 2013-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多