如何删除未使用的CSS规则

前端之家收集整理的这篇文章主要介绍了如何删除未使用的CSS规则前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

EDIT: While my specific issue is due / relating to the Twitter Bootstrap
system,the solution I am looking for does not need to be Twitter
Bootstrap specific,but more a solution for any CSS style sheets.

我正在开始探索我正在研究的当前项目的Twitter Bootstrap世界.我正在使用Bootstrap 3.3.6

问题(为什么我有下面的问题)

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

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

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

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

我之前已经非常成功地使用了Firefox Dust-Me CSS refiner,它可以识别页面中甚至整个站点上所有未使用的CSS规则.

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

>它只保留页面上用于所用设备/媒体的CSS规则(例如,它告诉我IE10 viewport bug workaround CSS文件中的所有规则都没有使用,因为我使用的是Firefox浏览器而不是IE10 ).它也没有考虑媒体查询特定规则.
>使用Dust-Me的另一个主要缺点(特别是,但我发现其他类似的程序有类似的缺点)是,虽然它会告诉我哪些规则没有使用,但它没有给我一个复制/的能力从源文件中粘贴使用过的CSS.

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

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

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

所以我问这个:

What is the best method or approach for me to read the CSS from a whole website,and
return only all the CSS rules that are referenced in the site,so rules that
are not referenced are not returned to the operator?

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

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

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

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

解决方法

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

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

猜你在找的CSS相关文章