跨多个文件删除重复的CSS声明

38

我希望能够删除多个文件中的重复CSS声明,以便更轻松地实现更改。是否有一种工具可以帮助我做到这一点?

现在我面临的情况是这样的:

styles.css
#content {
width:800px;
height:1000px;
background: green;
}

styles.game.css
#content {
width:800px;
height:1000px;
background: blue;
}

我想要这个:

styles.css
#content {
width:800px;
height:1000px;
background: green;
}

styles.game.css
#content {
background: blue;
}

所有文件的总行数超过10k,因此依赖于手动编辑的技术不可行。

6个回答

13

我为此目的编写了一个叫做csscss的工具。额外的是,它还与Sass和LESS集成。试用一下并让我知道在github上是否有问题。


4
看起来真的很整洁,但似乎不支持自动删除重复项和多个文件。 - kotekzot
3
不,这是有意为之的。开发人员有很多方法来重构他们的CSS。我认为自动删除会使在事后调试样式问题更加困难。 - Zach Moazeni
22
这就是期权的作用。 - kotekzot
我喜欢它既有gulp版本又有grunt版本!https://www.npmjs.com/package/grunt-csscss - Drkawashima

9

7

我们的最新版本可以做到这些,还有更多!http://rbtech.github.io/css-purge - AEQ
好像它没有去除重复项? - Kalpesh Singh
@KalpeshSingh 请提供您的CSS示例以及您如何使用它:https://github.com/rbtech/css-purge/issues - AEQ

3

遇到了与@kotekzot类似的问题,我使用了CSScompare。效果非常好!谢谢。 - daan_tallguys

2

您可以使用W3C CSS验证器来删除属性的重复项。通过点击“按文件上传”上传CSS文件并单击“检查”,然后转到警告部分,您可以看到重复的属性。然后,您可以通过转到文件中的特定行来删除重复项。

网址:jigsaw.w3.org/css-validator


似乎不起作用。我收到了一些关于背景和文本颜色相同的警告,但没有关于重复声明的警告。 - kotekzot

0

也许最接近你所寻找的是CSS预处理器和CSS导入。我喜欢LESS: http://lesscss.org/

我会做类似于:

styles.css
@site-width: 800px;
@site-height: 1000px;

#content {
width: @site-width;
height: @site-height;
background: green;
}


styles.game.css
@import url("style.css");

#content {
width: @site-width;
height: @site-height;
background: blue;
}

编辑:我有点忽略了你根本不需要LESS,也不需要在styles.game.css中设置高度和宽度。

它看起来只是这样:

styles.game.css
@import url("style.css");

#content {
background: blue;
}

一个有趣的解决方案,但最终我仍然必须处理编辑CSS时的重复声明,而这些文件中的总行数超过10k,手动编辑是不可行的。 - kotekzot
回复:编辑,有没有一种方法可以在不手动编辑所有文件的情况下到达那个状态? - kotekzot
据我所知没有这样的功能...根据你所说,这听起来像是大量的查找和替换。 - Connor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接