Использование PHP переменной в CSS
Иногда просто CSS файла мало, когда нужно создать динамичность изменения стиля. Конечно можно и тупо прописать стиль в HTML, но это не валидно.
Как оказалось стандартного решения нет, пришлось использовать извращенный способ…
Вот нашел на просторах интернета такое решение.
-- index.html -- stylesheet.php -- default.css
index.html
<span style="line-height: 1.5;"><link rel="stylesheet" type="text/css" href="stylesheet.php"></span> Тут мы будем наблюдать текст, оформленный с помощью CSS <span style="line-height: 1.5;">
stylesheet.php
<? function tStyle($data){ /* Получаем таблицу стилей */ $stylesheet = @is_file($_GET['stylesheet']) && strtolower(substr(strrchr($file_name,'.'),1)) == 'css' ? $_GET['stylesheet'] : 'default.css'; /* Настраиваем заголовок */ // Выводим будет как css header('Content-type: text/css'); // Дата истечения $days_to_cache = 10; header('Expires: '.gmdate('D, d M Y H:i:s',time() + (60 * 60 * 24 * $days_to_cache)).' GMT'); /* Извлекаем информацию из массива */ extract($_GET['theme'] && ${$_GET['theme']} ? ${$_GET['theme']} : $data); /* Загружаем в таблицу стилей */ $content = preg_replace('/\$([\w]+)/e','$0',@file_get_contents($stylesheet)); /* Вывод результата */ return $content; } $data = array( 'block_1' => ' color:#f00; font-size:20px; ' ); echo tStyle($data); ?>
default.css
* { margin:0; padding:0; } body { $block_1 }
Собственно фрагмент кода
$data = array( 'block_1' => ' color:#f00; font-size:20px; ' ); echo tStyle($data);
и есть вывод стилей…
Вот как оказалось все просто, хоть и таким способом…
Добавить комментарий