<rmcreative>

RSS

Переменные в CSS

13 апреля 2009

В прошлом году многие говорили о том, как удобны переменные в CSS и о том, что всё это будет не скоро. На самом деле реализовать это предельно просто. Допустим, что пишем мы на PHP.

Подключаем стили:

<link rel="stylesheet" href="style.php" media="screen, projection"/>

Ну и сам style.php:

<?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

  1. №1490
    andy
    andy 13 апр. 2009 г., 17:01:51

    Разве это не очевидно?

  2. №1491
    Андре
    Андре 13 апр. 2009 г., 17:38:56

    Простите, вы о чем? Чего тут удивительного или познавательного?

  3. №1492
    Anton
    Anton 13 апр. 2009 г., 17:39:36

    Да здравствует капитан Очевидность!

    Даешь топик "Как достать переменные из РНР в JS!"!!!

  4. №1495
    demongloom
    demongloom 13 апр. 2009 г., 21:59:29

    Я css/js вообще через смарти обрабатываю. И автогенерация хелперов, типа размер 1px..50px во все стороны и инклюды (клиент получает все как 1 файл). Можно по хидерам определять браузер и возращать сразу заточенный под браузер код (долой css хаки, а те кто скрывают агента - идут лесом). Ну и логику можно прописать в зависимости других данных.

  5. №1496
    vitalaw
    vitalaw 13 апр. 2009 г., 22:54:45

    Есть одно но у такого проекта: когда сервер настроен по принципу frontend-backend, то вся статика обычно отдается быстрым frontend-ом, а уже динамическое содержимое (php-скрипты) обсчитываются backend-ом. CSS и есть та статика, на которую не тратятся ресурсы backend-а. Но если отдавать css подобным образом, то этим уже будет заниматься backend, что не есть гуд.

  6. №1498
    Xobb
    Xobb 14 апр. 2009 г., 1:30:23

    @vitalaw

    так можно один маленький бекендик зделать для генерации css. Или нельзя? да и потом кешировать всю эту кашу можно.

  7. №1500
    mihdan
    mihdan 14 апр. 2009 г., 12:12:40

    Все ли браузеры корректно поймут css-файл с расширение не .css, а как у вас .php

  8. №1501
    Sam
    Sam 14 апр. 2009 г., 15:20:52

    mihdan

    Да.

  9. №1511
    Исаак Тынгылчав
    Исаак Тынгылчав 15 апр. 2009 г., 8:38:01

    Переменные вроде предназначены чтобы упрощать код. А у вас наоборот - загромождаете CSS конструкции php вставками.

    Дальше наверное пойдут условные операторы (например хаки по user-agent), циклы, процедуры, OOП...

  10. №1512
    Sam
    Sam 15 апр. 2009 г., 12:47:33

    Исаак Тынгылчав

    Тут просто пример не развёрнут. Вся прелесть в том, что, например, можно переменную с неким цветом использовать 10-20 раз.

  11. №1520
    Dr.Holerik
    Dr.Holerik 15 апр. 2009 г., 15:59:02
    Вся прелесть в том, что, например, можно переменную с неким цветом использовать 10-20 раз.

    Sam, если один цвет фигурирует в коде 10-20 раз (да хоть бы всего 2), почему бы не реорганизовать css-код: 10-20 селекторов { color: некий цвет; } .

    А вот некоторые операции со значениями переменных пригодились бы. Например, размер шрифта заголовка — 3n, подзаголовка — как 2n, а алгоритм вычисления переменных, соответствующий логике разметки — в PHP.

    P. S. Замечательные возможности открываются… Хотя я слабо представляю себе проект, где подобные методы были бы не просто изящным решением, а необходимым средством.

  1. Почта опубликована не будет.

  2. Можно использовать синтаксис Markdown или HTML.

  3. Введите ответ в поле. Щёлкните, чтобы получить другую задачу.