代码之家  ›  专栏  ›  技术社区  ›  nocksock

使用更少及其@import时的CSS冗余

  •  16
  • nocksock  · 技术社区  · 15 年前

    我真的很喜欢 LESS . 然而,我偶然发现了一个bug,这是我很久以前向作者报告的,但还没有得到任何反馈。也许是我做错了什么。

    我的 application.less -与此类似的文件:

    @import "reset";
    @import "config";
    @import "header";
    @import "forms";
    […]
    

    我喜欢它可以使用 @import 分割文件以更好地概述CSS声明的规则。但是每个导入的文件都需要重新导入config.less-file 再一次 为了能够利用我在这里定义的混合函数和变量。

    我敢打赌你已经知道我驾驶的是哪种冗余: 每次导入config.less时,其“输出”都成为application.css的一部分。

    我的配置文件包含大约200行代码。由于我将我的CSS拆分成大约5个需要重新导入配置的文件(基于我的控制器名称),我最终得到大约1000行生成的CSS代码,这些代码是100%冗余的。

    我唯一能想到的解决办法是不要分割我的文件,我真正想避免的是。

    4 回复  |  直到 11 年前
        1
  •  12
  •   cloudhead    15 年前

    虽然不理想,但实际原因是理论上导入的文件不需要包含任何CSS。通常,您会有变量和动态混音器,它们不会影响您的CSS输出:

    无资料的:

    #colors {
        @blue: #0011ff;
        @red: #ee2222;
    }
    .button (@width: 10px) {...}
    

    主要的:

    @import "lib";
    
    a { color: #colors[@blue]; }
    

    输出,main.css:

    a { color: #0011ff; }
    

    #colors {} and .button 在这种情况下不会输出。

        2
  •  3
  •   rink.attendant.6    11 年前

    少了现在的支持 @import-once "stylename.less";

        3
  •  0
  •   Jacob Rask    15 年前

    也许您可以在开发环境中拆分它们,然后将它们合并在一起,而不需要所有额外的代码,当您部署到实时Web服务器时?

        4
  •  0
  •   Jeremy Kauffman    14 年前

    如果在使用中声明和混合动态mixin,则可以在较小的配置文件中使用它们 $ 而不是 . .

    在配置文件中:

    $mixin
    {
      a { color: @light; }
      h2 { //etc.
    }
    

    标题:

    @import "config";
    .header
    {
      $mixin;
    }
    

    Source . 我也试过了,而且效果很好。