CSSTidy - эффективное сжатие CSS

PHP

Когда разработчики занимаются клиентской оптимизацией, то непременно встаёт вопрос о сжатии CSS файлов. Один из самых эффективных способов - это сжатие при помощи CSSTidy. Решение этой задачи сводится к сжатию строки, содержащей описание CSS стилей. Предлагаю Вашему вниманию PHP функцию, которая будет это делать.

Функция выглядит следующим образом:

function compressCSS($input) {
   require('class.csstidy.php');
   $css = new csstidy();
   $css->set_cfg('case_properties', 1);
   $css->set_cfg('merge_selectors', 2);
   $css->set_cfg('optimise_shorthands', 1);
   $css->set_cfg('remove_last_;',true);
   $css->set_cfg('css_level', 'CSS2.1');
   $css->load_template('highest_compression');
   $result = $css->parse($input);
   $output = $css->print->plain();
   return $output;
}

Обратите внимание, что если класс CSSTidy будет располагается в другом месте, то нужно будет прописать полный путь к файлу, содержашему класс.

Пример использования:

$css = '
body {
font:0.8em Verdana;
background:#FFFFFF;
}

small {
font-size:0.7em;
}

fieldset#field_input {
float:left;
margin:0 0.5em 1em 0;
}
';

$output = compressCSS($css);

// Переменная $output будет содержать
// 'body{font:.8em Verdana;background:#FFF}small{font-size:.7em}fieldset#field_input {float:left;margin:0 .5em 1em 0}'

В заключении хотелось бы привести показатели эффективности сжатия некоторых CSS файлов.

  1. Основной CSS файл из темы по умолчанию для Wordpress
    Общий размер - 9 788 байт
    В сжатом виде - 5 927 байт
    Степень сжатия - 61%
     
  2. CSS файл из скина для FCKeditor
    Общий размер - 8 478 байт
    В сжатом виде - 4 227 байт
    Степень сжатия - 50%
     

Как видно из этих примеров, сжатие CSS позволяет значительно сократить размер файлов.

Подробнее о CSSTidy на официальном сайте - http://csstidy.sourceforge.net/

14 Октября 2008 г.