Многие веб-дизайнеры жалуются, что в CSS отсутствуют константы, которые можно определить один раз и потом множество раз использовать их в файле CSS. К сожалению, CSS не был предназначен для этого и такое не поддерживает.
Тем не менее, используя язык серверной стороны, можно сгенерировать файл, соответствующий синтаксису CSS.
Ниже представлен небольшой PHP-скрипт, который анализирует любые CSS, предоставленным ему через переменную и читает, и заменяет собой определенные константы в CSS.
Эта страница показывает, каким образом она может быть использована. Вы обращаетесь с CSS недействительными констант синтаксиса в цикл через PHP скрипт:
<?PHP /* cssconst.php written by Chris Heilmann (//icant.co.uk) allows constants to be used in the css file sent in the get variable c constant format: $foo='bar'; */ header('content-type:text/css'); header("Expires: ".gmdate("D, d M Y H:i:s", (time()+900)) . " GMT"); $c=$_GET['c']; if(preg_match('///',$c) or !preg_match('/.css/',$c)) { die('only local CSS files allowed!'); } $css=load($c); if($css=='') { die('File not Found, sorry!'); } preg_match_all("/\$(w+).*=.*'(.*)'/",$css,$constants); for($i=0;$i<sizeof($constants[1]);$i++) { $css=preg_replace('/\$'.$constants[1][$i].'/',$constants[2][$i],$css); } $css=preg_replace("/\#.*=.*?;s+/s",'',$css); echo $css; /* Function load($file) reads the content of the file that you send and returns it */ function load($filelocation) { if (file_exists($filelocation)) { $newfile = fopen($filelocation,"r"); $file_content = fread($newfile, filesize($filelocation)); fclose($newfile); return $file_content; } } ?>
Играя с этой идеей, я подошел с небольшим PHP скрипт, который разбирает любые CSS, предоставленным ему через переменную и читает, и заменяет собой определенные константы в CSS.
Эта страница показывает, каким образом она может быть использована. Вы обращаетесь с CSS недействительными констант синтаксиса в цикл через PHP скрипт: