Переменные в CSS
13 апреля 2009
В прошлом году многие говорили о том, как удобны переменные в CSS и о том, что всё это будет не скоро. На самом деле реализовать это предельно просто. Допустим, что пишем мы на PHP.
Подключаем стили:
<link rel="stylesheet" href="style.php" media="screen, projection"/>
Ну и сам style.php:
// Отдаём верный content-type header("Content-type: text/css"); $link_color = '#00f'; $link_font_size = '20px'; p { color: <?=$link_color; font-size: $link_font_size; }
На выходе получим:
p { color: #00f; font-size: 20px; }
Комментарии RSS по email OK
Разве это не очевидно?
Простите, вы о чем? Чего тут удивительного или познавательного?
Да здравствует капитан Очевидность!
Даешь топик "Как достать переменные из РНР в JS!"!!!
Я css/js вообще через смарти обрабатываю. И автогенерация хелперов, типа размер 1px..50px во все стороны и инклюды (клиент получает все как 1 файл). Можно по хидерам определять браузер и возращать сразу заточенный под браузер код (долой css хаки, а те кто скрывают агента - идут лесом). Ну и логику можно прописать в зависимости других данных.
Есть одно но у такого проекта: когда сервер настроен по принципу frontend-backend, то вся статика обычно отдается быстрым frontend-ом, а уже динамическое содержимое (php-скрипты) обсчитываются backend-ом. CSS и есть та статика, на которую не тратятся ресурсы backend-а. Но если отдавать css подобным образом, то этим уже будет заниматься backend, что не есть гуд.
@vitalaw
так можно один маленький бекендик зделать для генерации css. Или нельзя? да и потом кешировать всю эту кашу можно.
Все ли браузеры корректно поймут css-файл с расширение не .css, а как у вас .php
mihdan
Да.
Переменные вроде предназначены чтобы упрощать код. А у вас наоборот - загромождаете CSS конструкции php вставками.
Дальше наверное пойдут условные операторы (например хаки по user-agent), циклы, процедуры, OOП...
Исаак Тынгылчав
Тут просто пример не развёрнут. Вся прелесть в том, что, например, можно переменную с неким цветом использовать 10-20 раз.
Sam, если один цвет фигурирует в коде 10-20 раз (да хоть бы всего 2), почему бы не реорганизовать css-код: 10-20 селекторов { color: некий цвет; } .
А вот некоторые операции со значениями переменных пригодились бы. Например, размер шрифта заголовка — 3n, подзаголовка — как 2n, а алгоритм вычисления переменных, соответствующий логике разметки — в PHP.
P. S. Замечательные возможности открываются… Хотя я слабо представляю себе проект, где подобные методы были бы не просто изящным решением, а необходимым средством.