对于某些Web开发项目,我开始使用一些外部前端框架。我不是一个好的设计师,所以他们非常有用,但是我从来没有利用他们一半的功能。

为了节省CSS文件的空间,我正在寻找一种能够了解我的DOM体系结构和CSS文件,然后删除所有无用的声明。


我不在乎它是Web应用程序,IDE还是浏览器插件,还是Linux / Windows桌面应用程序。
输入:.html文件(但如果您有其他建议,我很感兴趣)


评论

可能有一个非常不错的新选项...它是一个Nodes.js / Grunt插件CSSRazor-只是添加为注释,因为我刚刚找到它并且还没有使用过它,但这可能很棒。如果在几天的测试中喜欢它,我将对其进行记录。

并找到了比CSSRazor更好的产品。 uncss很快回答

#1 楼

我不得不说,我认为这个选择比我最初的建议要好。我最初的建议非常适合快速浏览,这更适合制作发行包。

UnCSS,特别是我基于该建议的是UnCSS的Grunt包装器;当然,它可以集成到Grunt构建系统中以实现高度自动化。

有很多自定义选项(也详细列出了),并且它支持本地和远程css文件作为源。 br />
如果在Grunt中使用,建议与grunt-processhtml一起使用,以自动使您的页面引用新的串联并清理的CSS文件。

如何我用它:(是我的gruntfile.js的片段)

grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    uncss: {
        main: {
            options: {
                report: 'gzip'
            },
            files: {
                '<%= grunt.option("outpath") %>/css/cleaned.css' : '<%= src_files_html %>',
            }
        }
    },
    processhtml: {
        main : {
            options: {
                strip: false
            },
            files: [{
                expand: true,
                cwd: '',
                src: '<%= src_files_html %>',
                dest: '<%= grunt.option("outpath") %>'
            }]
        }
    }


,然后在我的html文件中有这个:

    <!-- build:css ./css/cleaned.min.css -->
    <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css">
    <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap-theme.min.css">
    <link href="./css/style.css" rel="stylesheet">
    <!-- /build -->


转换为:

<link rel="stylesheet" href="./css/cleaned.min.css">

CSS的体积要小得多,并且在性能和移动带宽方面要好得多。

#2 楼

我有一个不错的选择-至少我完全喜欢它-尽管它既不是Web应用程序也不是Linux应用程序。

我建议使用Firefox附加组件CSS用法-它确实需要Firefox和Firefox附加组件Firebug。



用法:


仅加载页面(通过Web,本地主机(如我的图片)),甚至只是文件系统,
打开firebug控制台,然后单击css用法选项卡
单击SCAN

查看,如果要导出已清理的css(仅从文件系统可靠地工作-尽管这应该是一个较小的修复程序)

不幸的是,导出的已清理CSS有一些烦恼;删除了一些规则(很好),但有些前缀为UNUSED.。应该有一个IMO选项可以删除这些也一样,但是目前我不相信(至少,如果我从未发现过)。

作为一种变通办法,我一直做的就是将其复制并粘贴到Notepad ++并使用搜索替换为是正则表达式作为搜索字符串:UNUSED\..*?\}(并选择. matches newlines)和一个空白替换来摆脱它们。 -要在Sublime中执行相同的操作,请使用(?s)UNUSED\..*?\}作为正则表达式。其他大多数优秀的文本编辑器也应具有类似的功能。

评论


我可以导出的清理过的CSS并不干净:它仅在每个未使用的语句之前添加UNUSED。是否需要进行任何配置才能使其正常工作?

–分形
2014年3月15日19:50

但是,他仍然需要打开所有站点页面,以便该工具记录所有内容。也许那时html的某些元素未显示_(用户未登录,因此没有“编辑配置文件”选项卡,因此没有使用#edit_profile css元素)并在所有条件下运行。

–穆罕默德·约拉德(Mohammed Joraid)
2014年3月17日在8:35

@Joraid:是的,尽管大多数网站只需要打开每种类型的页面即可获取所有的类/ id,但仍然可以打开并扫描每个页面/ AJAX内容。您可以使用自动扫描功能来减少手动工作。

–尼克·迪金森·威尔德
2014年3月17日14:02

#3 楼

我已经制作了基于此浏览器的在线未使用CSS移除工具。
功能:

基于浏览器。无需安装。
针对多个URL检查CSS。
提供用于手动选择/取消选择CSS
文件中项目的选项。
可以下载并在本地主机上运行,​​不受限制
URLs
开源代码

免责声明:我是代码的作者。

#4 楼

IntelliJ IDEA具有一些强大的Web开发功能:


与Windows / Mac / Linux一起使用
发现未使用的CSS类定义

,您需要Ultimate Edition可以访问Web开发功能(如果您是项目负责人或开放源代码项目的常规提交者,则免费)。

评论


OP要求使用一种工具来删除未使用的CSS。有许多免费选项可以找到未使用的CSS。 Chrome开发者工具有一个。

– Tony_Henrich
2015年9月1日于18:03

#5 楼

我们为此编写了一个免费的在线工具:UnusedCSS

它递归地爬网您的网站(遵循内部链接)并找到未使用的选择器(许多其他工具仅处理一页)。

#6 楼

我之前在几个项目上使用过firebug插件CSS用法-唯一的缺点是您必须手动浏览整个网站才能获得使用中样式的准确映射。

它但是,将为您提供css文件的简化版本,可用于替换当前的样式表。

评论


欢迎使用软件建议书堆栈交换!这篇文章没有包含足够的信息,不能被认为是高质量的答案。请阅读我们关于优质答案的讨论,以了解是否可以将其中的一些改进纳入答案中,否则将被删除。

–脑袋
2014年3月15日在1:28