这可以使用CSSO 来完成。
考虑以下输入:
input{margin:0}body{margin:0;background:white}
CSSO 输出:
input,body{margin:0}body{background:#fff}
(正是您要找的)
但不幸的是,CSSO 对此进行了优化:
.dont-care {
background-image: url("images/chart.png");
background-repeat: no-repeat;
}
收件人:
.dont-care{background-image:url("images/chart.png");background-repeat:no-repeat}
但是,CSSTidy 将上述转换为相应的速记属性:
.dont-care {
background:url("images/chart.png") no-repeat;
}
七 优化 CSS 的四步解决方案:
这是我遵循的做法:
- 合并
all.css中的CSS文件。
- 提供给CSSO输入。
- 点击最小化
- 将输出粘贴到
all.min.css
除了支付@Grillz 手动完成它之外,到目前为止,我还没有找到更好的 CSS 优化交易..
但是旧的 IE hack 呢?
如果您对 IE6 和 7 使用 CSS hack,CSSO 将保留这些 hack。
例如:
.dont-care {
background-image: url("images/chart.png");
*background-image: url("images/chart.jpg");
background-repeat: no-repeat;
}
CSSO 输出:
.dont-care{background-image:url("images/chart.png");*background-image:url("images/chart.jpg");background-repeat:no-repeat}
CSSTidy 将忽略 asterik(* hack used for IE6),并输出:
.dont-care {
background:url("images/chart.jpg") no-repeat;
}
您还可以避免黑客攻击,并为旧版 IE 使用单独的 CSS 文件(比如 all.oldIE.css)。在分别优化(使用前面描述的 7 个步骤)这两个文件之后,这就是您最终可以在 HTML/masterpage/template/layout 文件的
标记中使用的内容:
<!--[if lt IE 8]><link href="css/all.oldIE.min.css" rel="stylesheet" type="text/css"/><![endif]-->
<!--[if gt IE 7]><!--><link href="css/all.min.css" rel="stylesheet" type="text/css"/><!--<![endif]-->
其中all.min.css 将适用于除IE 版本小于等于7 之外的所有浏览器。但单独使用CSSO 是一个安全的选择。
更新
跳过 CSSTidy 部分。 CSSO 进行安全优化。 According to their developer,速记优化不安全:
考虑这个例子:
.a{
background-attachment: fixed;
}
.b {
background-image: url("images/chart.png");
background-repeat: no-repeat;
}
如果你有<div class="a b"></div>——一个同时拥有的元素
类,你不能在你写的时候优化 .b,因为它会
覆盖在.a 中设置的background-attachment。
所以,不,这不是一个安全的优化。