Это можно сделать с помощью 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:
Вот практика, которой я следую:
- Объединить CSS-файлы в
all.css
.
- Поставка на CSSO вход.
- Удар Свернуть
- Вставить вывод в
all.min.css
За исключением оплаты @Grillz, чтобы сделать это вручную, я пока не нашел лучшего предложения по оптимизации CSS ..
А как насчет старых хаков IE?
Если вы используете хаки CSS для IE6 и 7, CSSO сохранит хаки.
Например:
.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 будет игнорировать звездочку (* хак, используемый для IE6) и выводит:
.dont-care {
background:url("images/chart.jpg") no-repeat;
}
Вы также можете избежать взлома и использовать отдельный файл CSS для более старых версий IE (скажем, all.oldIE.css). После оптимизации (используя 7 шагов, описанных ранее) обоих файлов по отдельности, это то, что вы можете использовать в теге вашего HTML / masterpage / template / layout file в конечном итоге:
<!--[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 делает безопасную оптимизацию. По словам их разработчика , сокращенная оптимизация небезопасна:
Рассмотрим пример:
.a{
background-attachment: fixed;
}
.b {
background-image: url("images/chart.png");
background-repeat: no-repeat;
}
и если у вас будет <div class="a b"></div>
- элемент с обоими
классы, вы не можете оптимизировать .b, как вы пишете, потому что это будет
переопределить background-attachment
, установленный в .a.
Так что нет, это не безопасная оптимизация.