lastzero / css-optimizer
此包已被废弃,不再维护。未建议替代包。
CSS优化器 - 通过删除重复项和合并选择器来压缩样式表
v1.0.0
2015-11-25 05:56 UTC
Requires
- php: >=5.4
- kriswallsmith/assetic: *
- natxet/cssmin: dev-master
Requires (Dev)
- lastzero/test-tools: *
- phpunit/phpunit: @stable
- sstalle/php7cc: *
This package is auto-updated.
Last update: 2024-02-29 09:14:11 UTC
README
通过删除重复项和合并选择器来压缩样式表 - 主要安全且非常高效。此包是为了优化现有商业网站中的CSS而开发的“快速胜利”,因为CSS中包含了许多由CSS预编译器创建的重复和类似选择器。它被发布,希望帮助处于相同情况的他人。
注意:优化是通过简单的(且快速)字符串函数进行的 - 它不是一个真正的CSS解析器。它需要一个没有内联注释的良好格式CSS(不用担心,您可以使用minifyCss()方法,请参阅用法)。
警告:您CSS中选择器的顺序确实起作用,当具体性值完全相同时,“更低”的选择器实际上会获胜。如果您的CSS依赖于顺序来工作,此优化显然会破坏它。另请参阅https://en.wikipedia.org/wiki/Cascading_Style_Sheets#Specificity
输入
body { foo:bar; too: me; }
body { baz:foo; }
body { foo: new }
div.test { border: 1px solid black; }
div.other { border: 1px solid black}
输出
body{baz:foo;foo:new;too:me}div.other,div.test{border:1px solid black}
用法
$optimizer = new \CssOptimizer\Css\Optimizer;
$inputCss = 'body { foo:bar; too: me;} body { baz:foo; } body { foo: new }
div.test { border: 1px solid black; }
div.other { border: 1px solid black} ';
$minifiedCss = $optimizer->minifyCss($inputCss);
$optimizedCss = $optimizer->optimizeCss($minifiedCss);
print_r($optimizer->getCounts());
Assetic过滤器
此库附带一个现成的Assetic过滤器(用于Symfony2)。请使用预过滤器如CssMinFilter。
用法
$filter = new \CssOptimizer\Assetic\Filter\CssOptimizeFilter;
$asset = new StringAsset($inputCss);
$asset->ensureFilter($filter);
$outputCss = $asset->dump();
Composer
如果您正在使用composer,只需将"lastzero/css-optimizer"添加到您的composer.json文件中,然后运行composer update
"require": {
"lastzero/css-optimizer": "*"
}