【问题标题】:Can the SASS minifier remove duplicate styles?SASS 缩小器可以删除重复的样式吗?
【发布时间】:2012-06-25 01:42:22
【问题描述】:

我知道 css 规则相当复杂;但是,优化器不能以多种方式简单地减少以下 css 吗?如果是这样,在 rails-sass gem 中是否有它的选项?

span {
    background: red;
    color: green;
}

.test2 {
    background: red;
    color: green;
}

span {
    background: green;
    color: inherit;
}

.test2 {
    background: inherit !important;
    color: inherit;
    color: inherit;
    color: inherit;
}

其他背景:

为了帮助澄清,我也提出以下建议......

来源:

span {
    background: red;
}
span {
    background: orange;
    color: green;
}
span {
    background: yellow;
}
span {
    background: blue;
    color: green;
}

而且,我希望编译器生成以下内容:

span {
    background: blue;
    color: green;
}

我知道有多余的样式,但是在不断修改样式表时会发生很多次,我想消除死代码。

【问题讨论】:

  • 你可以通过CSSTidy或类似的方式运行输出的CSS。
  • 你找到方法了吗?截至 2019 年实现这一目标的建议方法是什么?

标签: css sass


【解决方案1】:

我认为我可能已经找到了一种方法,至少可以在 css 和 sass/less 模板中找到重复的样式:

开源csscss gem http://zmoazeni.github.io/csscss/

它似乎能够检测到重复项,尽管我不得不在 bootstrap-sass gem 的 css 与我的 css 资产不在同一个文件夹中进行修补。

从文档中,您可以运行:

$ csscss -v path/to/styles.css

$ csscss -v path/to/styles.css.scss

【讨论】:

  • "虽然我不得不对 bootstrap-sass gem 的 css 进行修补,但它与我的 css 资产不在同一个文件夹中。" - 请在github 上提出问题。我想知道你在尝试什么,什么没用。
【解决方案2】:

据我所知,SASS 只会以不同的方式格式化您的代码,但不会为您优化它http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#output_style

扩展 Whymarrh 的评论,CSSTidy 有一个命令行实用程序,可以集成到构建过程或类似过程中,http://packages.ubuntu.com/hardy/csstidy

【讨论】:

  • csstidy 的问题是它已经多年没有维护了,所以我不相信它会支持更新的媒体选择器,以及渐变和响应式设计所需的多个背景属性。
  • 没错,但是你也可以设置一个标志来忽略未知的语法,所以至少这不会改变,我昨天对一组 10 个导出的 CSS 文件进行了一些测试,结果是有点令人失望,在最好的情况下,我们获得了大约 1% 的压缩增益,请记住,我们公司在性能方面非常糟糕,所以像 #ffffff(而不是 #fff)这样的东西是不可接受的,您的里程可能会有所不同,我建议您至少试驾一下:)
  • 如果您安装了 node.js,则有 csso,看起来它正在积极维护中。该手册解释了它将进行哪些优化。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-06-20
  • 2020-02-11
  • 2011-10-07
  • 2012-10-31
  • 1970-01-01
  • 2018-12-09
  • 2023-04-04
相关资源
最近更新 更多