【发布时间】: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