♛ FORTRESS-DESIGN

Константы в CSS

Оригинал

Многие веб-дизайнеры жалуются, что в 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 скрипт:


Перейти к верхней панели