【问题标题】:How To Remove unused CSS rules [closed]如何删除未使用的 CSS 规则
【发布时间】:2016-01-18 23:00:33
【问题描述】:

编辑:虽然我的具体问题是由于/与 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 文件中的所有规则都没有使用,因为我m 使用 Firefox 浏览器而不是 IE10)。它也没有考虑媒体查询特定的规则。

  • 使用 Dust-Me 的另一个主要缺点(具体来说,但我发现的其他类似程序也有类似的不足)是,虽然它会告诉我哪些规则没有使用,但它不会告诉我能够从源文件中复制/粘贴使用的 CSS。

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

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

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

所以我问这个:

对我来说,从整个网站读取 CSS 的最佳方法是什么? 仅返回站点中引用的所有 CSS 规则,因此规则 不被引用的不返回给运营商?

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

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


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

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

【问题讨论】:

  • 第一步可能是构建一个自定义版本的 Bootstrap 没有你不使用的部分:getbootstrap.com/customize
  • 要求我们推荐一种技术或查找书籍、工具、软件库、教程或其他场外资源的问题对于 Stack Overflow 来说是题外话
  • 我已经更新了我的实际问题,@Paulie_D。
  • 这个问题要么过于宽泛,要么基于观点,要么需要讨论,因此与 Stack Overflow 无关。如果您有具体的、可回答的编程问题,请提供完整的详细信息。
  • @Paulie_D 好的,我该如何提出基本问题“如何从我的网站样式表中删除未使用(从未使用过)的 CSS 样式?”使它适合SO形式?干杯

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


【解决方案1】:

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

要获得更精细的控制,您可以使用源 .less 文件仅编译您想要的组件。

【讨论】:

  • 我以前没有找到这个,我只找到过时的 boostrap2 版本的链接。我会调查一下,谢谢
  • 这对于减少开销确实很有用,但CSS中仍有许多剩余的核心规则,我希望能够删除它们。跨度>
  • 当然。这不是一个完美的解决方案,但它是一个好的开始,无需解析所有的 html/css。您是否考虑过下载源“.less”文件?这样你就可以更好地控制你编译的内容
  • 在那种情况下可能会使它过于复杂,但如果你真的关心文件的大小,那是你最好的选择。请注意,如果有帮助的话,bootstrap 4 将使用 Sass 而不是 less
  • 感谢您的帮助,盖伊。我正要阅读 Bootstrap 4,看看是否值得尽早深入研究。
【解决方案2】:

您可以使用unused-css.com,它将一个 URL 作为输入,这是您所要求的。

【讨论】:

  • 这就是我要找的东西,但网站声明如果我付钱,它只会提供减少的文件:-(
  • 尽管如此,这是您要求的服务类型。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-22
  • 2019-02-22
  • 2015-07-07
  • 1970-01-01
  • 2016-01-09
  • 2013-09-03
相关资源
最近更新 更多