如何删除未使用的CSS规则

时间:2016-01-18 14:14:38

标签: css twitter-bootstrap twitter-bootstrap-3

  

编辑:虽然我的具体问题是由于Twitter Bootstrap的原因   系统,我正在寻找的解决方案不需要是Twitter   特定于Bootstrap,但更适合任何CSS样式表的解决方案。

我正在开始探索Twitter Bootstrap的世界,以寻找我正在进行的当前项目。我正在使用Bootstrap 3.3.6

问题 (我为什么会遇到以下问题)

基本的Bootstrap CSS文件是6760行,以及用于将我自己的自定义CSS添加到站点的其他文件。总的来说,这使得每个页面的网站加载了~8700行CSS(未经分析)。

但适用于该网站的规则仅使用约700条这些线路。这是每个页面的大量开销,即使将CSS缩小为.min.css格式,这仍然是一个巨大的百分比开销。

我正在寻找一种方法来减少这种开销,而无需从CSS文件中删除任何使用过的规则。

我尝试了什么 (以及为什么它不起作用或不切实际)

我以前非常成功地使用了Firefox Dust-Me CSS精简程序,它可以识别页面中甚至整个站点上所有未使用的CSS规则。

这就是我想要的东西, 但是 它有两个严重的缺点:

  • 它只保留在页面上用于所使用的设备/媒体的CSS规则(例如,它告诉我IE10 viewport bug workaround CSS文件中的所有规则都没有使用,因为我使用的是Firefox浏览器,而不是IE10)。它也没有考虑媒体查询特定规则。

  • 使用Dust-Me的另一个主要缺点(特别是,但我发现其他类似的程序有类似的缺点)是,虽然它会告诉我哪些规则没有使用,但它没有&#39 ; t让我能够从源文件中复制/粘贴使用过的CSS。

我还研究了一些其他CSS备用规则删除器和Google Chrome Developers Audit这是有用的,但做同样的事情,以文本格式列出未使用的规则,这几乎只是我要找的工作的一半

问题 (为什么我需要你的帮助来解决这个问题)

所以我处于谷歌Chrome审核的位置,告诉我88%的bootstrap.css和65%的bootstrap-theme.css未使用。这些未使用的元素以文本格式列出,并且有数百个。目前我只能看到我需要在每一个上找到/替换它们,从源中删除它们[规则标识符],然后再通过CSS文件并删除所有不再执行的命令有任何规则。

所以我问这个:

  

从整个网站阅读CSS的最佳方法或方法是什么?   仅返回站点中引用的所有CSS规则,因此规则   未引用的是否未返回给运营商?

然后我可以从这个函数中获取输出,然后将其缩小并保存引导程序的大量CSS开销。

,有没有完全不同的做法,我没有考虑过?

其他 我已经阅读了How to remove unused styles from twitter bootstrap?,这与我要问的内容类似,但这里的正确答案引用了某种Bootstrap选择,我可以从Bootstrap中选择哪种样式。这是日期2013年,似乎是指Bootstrap版本2.

另外,我不使用Grunt而且不熟悉Less。对不起: - /

2 个答案:

答案 0 :(得分:5)

您可以自定义在http://getbootstrap.com/customize/编译的组件。 这样您将获得一个较小的输出文件,但将满足所有依赖项。

为了获得更好的控制,您可以使用源.less文件仅编译所需的组件。

答案 1 :(得分:-1)

您可以使用unused-css.com作为输入,这是您要求的。