Планируемые новшества в CSS

Original author: Peter Beverloo
  • Translation
Tab Atkins, член рабочей группы CSS и команды Google Chrome, опубликовал слайды презентации, которую он проводил в прошлую среду.

Эта презентация демонстрирует четыре относительно новых концепта:

Переменные
Объявляя переменную через конструкцию var, указав ее имя, значение, и все что-угодно от цвета до длины, вращений и функций, она может быть доступна для всего CSS, используемого на странице.

Поддержка локальных переменных также будет присутствовать, через конструкцию local

@var paragraph-size length 12px;
@var paragraph-color color rgba(0,0,0,0);
p {
  color: var(paragraph-color);
  font-size: var(paragraph-size);
}


Примеси
Примеси дают возможность расширить правило необходимыми свойствами с возможностью установки значений по умолчанию.

@mixin error {
  background: #fdd;
  color: red;
  font-weight: bold;
}
div.error {
  border: thick solid red;
  padding: .5em;
  @mixin error;
}
span.error {
  text-decoration: underline;
  @mixin error;
}


Вложения правил
Текущие вложения в CSS, особенно без использования классов или id, являются болезненными. Конструкция this преставлена для упрощения этого. Она будет применяться к потомкам действующего правила, наследуя его имя. Теперь можно будет сделать более ясной такую структуру:

header {
  color: red;
  @this a {
    color: blue;
  }
}


Модули
Нет, не те модули, которые составляют CSS 3. Модули — это обычные пространства имен для переменных и примесей. Переменные и примеси могут быть определены через прописание имени модуля в начало собственного имени, либо используя конструкцию use.

@module foo {
  @var bar color red;
  @mixin baz { color: blue; }
}
.foo {
  color: var(bar); // Не работает
}
.bar {
  @use foo;
  color: var(bar); // Работает
}
.baz {
  @mixin foo|baz;  // Работает
}


Хотя текущий код доступен всего на нескольких машинах в Сиднее, Гугл планирует опубликовать начальную спецификацию в этом квартале и реализовать новшества до конца года. Учитывая, что ни эти планы переменных, ни планы примесей не были распространены в почтовой подписке www-style, будет интересно увидеть, как изменения будут приняты остальными браузерами. Похожие обсуждения, несколько лет назад показали, что это довольно спорные вопросы с очень разными мнениями.

Слайды презентации
Share post

Similar posts

Comments 128

    +71
    Через некоторое время заголовок на хабре: «ООП в CSS»
      +21
      скорос слова: «Я программирую на CSS и HTML» не будут вызывать улыбку
        –18
        На мой взгляд HTML+CSS — это средства верстки контента, а никак не программирования.
        И вот эти сложные заморочки принесут пользу только тем кто делает проект «в одно рыло»,
        для тех же кто делает что либо в команде, все больше размывается граница между программером и верстальщиком.
        В том плане, что непонятно кому из них реализовывать тот или иной ничтяк.
          +12
          Да нет, тут все четко разделено.
          И предложенное не имеет ничего общего с програмированием на самом деле.
          Это все средства организации CSS кода. Не более.
            0
            фича какбы дает возможность назначать класс не через аттрибут в теге, а прямо в css-файле…
            занятно…
            +1
            IDE на что тогда?

            Когда (и если) такие вещи будут внедрены в спецификацию CSS и браузеры начнут поддерживать их, за ними подтянутся и нормальные среды разработки, которые позволят видеть все эти «сложные заморочки» не отрываясь от кода.
          0
            0
            Ничего нет. Это всего лишь аналогия.
          +1
          >> @var paragraph-size length 12px;
          Как-то коряво, в модулях фигурные скобки есть, в переменных — забыли, логичнее бы что-то такое:
          @var paragraph-size {length 12px;}
            0
            Путаешь переменную (хотя вообще помоему это константа -_-") и правило.
            Переменная может содерать только одно значение, насколько я понимаю.
              0
              По смыслу — константа, по названию — @var = variable.

              Не обратил внимание на тип переменной, в предыдущем комментарии после length подразумевается двоеточие,
                0
                в xsl переменные это константы, а параметры — это переменные.
                DSSSL-спецификацию бы изучить, язык трансформаций sgml-размеченных документов.
                +1
                Т.e. что-то такое:
                @var{
                	paragraph-size: 12px;
                	paragraph-color: rgba(0,0,0,0)
                	}
                  0
                  Это де модуль. Нет?
                    0
                    Нет, это объявление нескольких переменных без типов данных (length, color и т.д.)
                    Модули надо через use импортироватьё
                      0
                      так вы про примеси говорите. Зачем в переменной объявлять несколько значений, это как вообще…
                        0
                        Не примеси: это объявление нескольких переменных в одном блоке @var вместо планируемого поштучного с непонятно зачем нужным упоминанием типа данных — не знаю, мне бы так удобнее было.
                0
                Какие хорошие хабратопики мне снятся… но я же знаю, что я сейчас сплю. Такого не бывает Мне нужен выброс и ДиКаприо…
                  +3
                  нифигасе! где берешь? в личку
                    +3
                    офигеть, на хабре еще плюсуют комментари в духе «отсыпь травы»
                      +2
                      Их всегда плюсуют.
                  –5
                  Только пару месяцев назад думал обо всем этом! супер!
                    +9
                    Все это есть в LESS.
                      –1
                      Только стоит ли добавлять лишнюю прослойку, которая будет парсить CSS?
                      (а значит еще один уровень, где можно наделать ошибок, и время которое понадобится на парсинг)
                        +1
                        ну не кажется мне, что это все будет иметь критический характер.
                          0
                          LESS уже есть и работает, а вот когда это все заработает из коробки в ИЕ боооольшой вопрос.
                            +1
                            IE9 — уже большой скачок вперёд, так что, возможно, ребята из Редмонда что-то поняли и «больше так не будут» (с)
                              0
                              Цикл выпуска и обновления ИЕ не идет ни в какое сравнение с аналогичными циклами других браузеров.
                          0
                          Не очень понятно, почему не сказать честно: «чуваки из LESS» сделали огромный шаг вперед, теперь мы это поняли и понемного станем вводить в стандарт.
                        +8
                        Фыркнул.
                        Сидит и ждет пока сможет использовать .chapterNavigation>li:hover:not(.selected)>a:not(:last-child):after{} в реальном проекте без боли в заднице.
                          +1
                          мечты-мечты… тут даже прямое наследование только-только применять начал, когда окончательно забил на ИЕ6, а уж такого рода конструкции и вовсе где-то за пределами астрала(
                            0
                            а я уже применяю :)

                            тут вопрос отнюдь не технический. Вопрос в том, чтобы объяснить заказчику про graceful degradation.
                            И да, сделать degradation действительно graceful.
                            +7
                            Кстати, такими темпами css рискует превратится в замену xslt.
                              +1
                              И ура.
                                +2
                                А зачем?
                                  +1
                                  Честно говоря, мне просто нравится XSLT:)
                                    0
                                    у них одна папа
                              +19
                              Классно, так и вижу конструкции
                              @var X 12px;
                              -webkit-var X 12px;
                              -moz-var X 12px;
                                +2
                                страшно представить, как это будет выглядеть в IE
                                  +4
                                  для IE будет специальный js, который будет подсовывать ему css в привычном виде %)
                                    +1
                                    CSS фреймворки станут Фреймворками с большой буквы.
                                      +1
                                      я бы уже сейчас не отказался от js-фреймворка, который позволит мне писать CSS по стандартам и будет заниматься улаживанием разногласий между браузерами. мечты =)
                                        0
                                        А еще он будет тормозить несчастный ie6 так, что те кто попробует посмотреть в нем страничку будут опечалены. При условии что все это не заглючит и страничка вообще будет отображена.
                                        ie7.js/ie8.js где то на гуглкоде лежали.
                                        Посмотрите на эти чудо-скрипты.
                                          0
                                          selectivizr.com/
                                          вот оно, 8 чудо света
                                      0
                                      filter: progId:BRealityTransform.Microsoft.Variable(varName='X', varValue='12px');
                                      -ms-filter: «progId:BRealityTransform.Microsoft.Variable(varName='X', varValue='12px')»;

                                      чего ж тут непонятного-то…
                                      0
                                      неправильно

                                      ваш вариант будет выглядеть как-то так

                                      @var x length 12px;
                                      @var y string solid;
                                      @var z color red;

                                      .myclass{
                                      border: var(x) var(y) var(z);
                                      }
                                        0
                                        Вы слегка не поняли суть, я намекал на то, что каждый браузер изобретает свой велосипед.
                                          0
                                          а, понял. Ну так, видимо, w3c хотят все свести к тому, чтобы браузеры наконец начали работать по стандартам, а не стандарты писали бы под браузеры (как сейчас происходит).
                                      +5
                                      SASS, LESSCSS и прочие наработки Ruby- и не только Ruby комьюнити — будущее уже сегодня.

                                      lesscss.org/
                                      перевод на русский: rubydev.ru/2010/05/vsya-pravda-o-less/

                                      sass-lang.com/
                                        0
                                        У меня вот тоже появилось некое чувство дежа вю…
                                          –3
                                          Если вышеописанные новшества реализуют почти все браузеры, будут конфликты с LESS.
                                            +4
                                            Если вы ознакомитесь, как работают вышеназванные библиотеки, вы перестанете писать ахинею.
                                            0
                                            Действительно, не совсем понятно зачем гугл придумывает свой велосипед (хотя, пускай).

                                            Про less/sass: более того, сгруппировав все переменные, примеси и модули, мы плавно переходим к теме мета-фреймворков, типа компасса. Впрочем, многие веб-девелоперы еще не въехали в тему…
                                              0
                                              ощущение от пары попыток познакомиться с этим чудом таково:
                                              sass/less противоречит принципу kiss.
                                              +3
                                              Правильно, рабочая группа W3C по CSS явно слабо понимает, что реально нужно веб-разработчикам.
                                                +2
                                                Не сыпьте сахер на хер.
                                                Лучше бы добивали спеки по лаяутам/гриду и тыкали палочкой микромелких.
                                                Но как планы на некое будущее — ради бога, хотя все же для подобных задачь имеет смысл использовать XSLT.
                                                  0
                                                  Одно другому не мешает. При этом переменные и наследование (mixins) — потребности куда более фундаментальные.
                                                    +2
                                                    Потребности куда более фундаментальные, чем спецификации, связанняе с построением лаяутов?
                                                    Как минимум лично для меня это не так. И думаю, что мое мнение разделяет большинство верстальщиков.

                                                    Что касается «Одно другому не мешает», то все требует человеческих и финансовых ресурсов. И времени. Ни один из этих ресурсов, мягко говоря, не безграничен. Так что — мешает.
                                                      0
                                                      думаю, что мое мнение разделяет большинство верстальщиков
                                                      Скромно. ;-)

                                                      Фундамент — это синтаксис. Синтаксис CSS крайне убог и лишён тех базовых возможностей, о которых идёт речь в этой теме. Объём человеческих ресурсов, необходимых для того, чтобы единожды из продумывать и сделать стандартом, крайне мал.
                                                        0
                                                        (из → их)
                                                          +1
                                                          Синтаксис CSS крайне убог и лишён тех базовых возможностей, о которых идёт речь в этой теме.

                                                          Без этих «базовых» возможностей я проверстал 11 лет. И я припомню случаев, когда без них реализовать ту или иную задачу было было бы проблематично.
                                                          А вот о убогости текущего механизма построения лаяутов и сетки мне приходится задумываться кажый раз, когда открываю text mate и набираю html:5⌘E.

                                                          Повторное использование кода модулями, основные цвета и шрифты вынесенные в отдельные CSS в виде констант и все прочие прелести организации кода глубоко вторичны по сравнению с:

                                                          Template Layout Module
                                                          Flexible Box Layout Module
                                                          Multi-column Layout Module
                                                          Grid Positioning Module

                                                          или скажем внедрением селекторов третьего уровня.
                                                          Это плюшки, без которых прекрасно можно жить. Не более.
                                                          И я бы не хотел что бы из за плюшек на полгода-год-два(?) отложилось внедрение вендорами чего то действительно стоящего.

                                                          Объём человеческих ресурсов, необходимых для того, чтобы единожды из продумывать и сделать стандартом, крайне мал.

                                                          Эм… вы действительно так думаете?
                                                          Проведите паралели с существующими на данный момент задачами и черновиками.
                                                          Это «крайне мал» на самом деле несколько лет упорного труда до того момента когда будет утрясен синтаксис и алгоритмы работы и хотя бы два вендора внедрят все это безобразие в полной мере и черновик станет кандидатом рекомендации.
                                                            0
                                                            я припомню случаев* → я не припомню случаев.
                                                              0
                                                              Без этих «базовых» возможностей я проверстал 11 лет.

                                                              без ваших Layout Module я проверстал много лет
                                                                +2
                                                                И делали лаяуты сначала табличками а потом совершенно не предназначенными для этого float'ами. C кучей избыточного html/css кода и ситуациями когда корректно и красиво реализовать тот или иной лаяут просто физически невозможно.

                                                                По прежнему считаете, что возможность создания переменных и управления, скажем, всеми заголовками 3го уровня из одного css гораздо важнее?
                                                                Я предпочту нормальную работу с лаяутом, а если понадобится заменить все font:bold 24px/36px Tahoma,sans-serif; на font:bold 12px/18px Tahoma,sans-serif;, то я воспользуюсь поиском/заменой по проекту. Даже не поленюсь регулярное выражение раз в пол года написать, когда ситуация менее тривиальна.

                                                                Лучше всего конечно и то и другое… но это все с лаяутами и близко не стоит.
                                                                  –1
                                                                  Есть очень много вещей, которые я хотел бы видеть в CSS. И первая из них — это какие-нибудьт нормальные стандартоутверждатели, а не тормоза из W3C.
                                                                    +1
                                                                    Я бы не хотел видеть в своем CSS «стандартоутверждателей».
                                                                    Это очень страшно. Да.
                                                                    >___<
                                                                      0
                                                                      стандарт это очень правильно если все браузеры его будут поддерживать :)
                                                              0
                                                              Это «крайне мал» на самом деле несколько лет упорного труда
                                                              Несколько лет это, к сожалению, только для тормозов из CSS WG, не способных понять даже то, зачем надо добавить в спецификацию CSS подсвойства background-position-x/-y. overflow-x/-y добавили, а background-position-x/-y, видите ли, не считают оправданным. Притом, что уже существуют две независимых реализации — IE и WebKit — возьми да просто задокументируй. Теоретики.
                                                                +1
                                                                мне иногда кажется, что они — не теоретики, а мудаки
                                                                  +1
                                                                  Думаю, что там не все так просто.
                                                                  Люди, которые этим занимаются, маягко говоря не глупые.
                                                                  Скорее всего мы просто не видим всей картины.
                                                                  К тому же — какими бы они ни были, они такие, какие есть.
                                                                  И нам ничего не остается кроме как принять это.
                                                                  Можно, конечно, предполагать, сколько займет разработка и внедрение спецификации исходя из неких идеальных, сферических w3c и вендоров браузеров в вакууме, но это довольно бесполезно, к сожалению.
                                                          –1
                                                          да микромелкие уже сами в В3Ц, и тыкать не надо.
                                                          тыкать надо гребанных недоюзеров, сидящих на ИЕ6/7.
                                                          и сжигать на кострах уродов-сисадминов, не обновляющи браузеры в корпоративных сетях.
                                                            0
                                                            Они в нем оооочень давно. :)
                                                            А тыкать палочкой их очень даже надо. Низкая динамика обновления ИЕ, которая сейчас наблюдается, делает меня несчастным.
                                                              0
                                                              да, практика исключительно мажорных версий, да еще и так редко — порочна. за это действительно стоит натыкать.
                                                              +1
                                                              Кстати, как правило, если «уроды админы» не обновляют IE6, то на нем завязано какое то ПО.
                                                              В общем — все не так просто.
                                                          +8
                                                          Программисты вероломно врываются в уютное веб-дизайнерское гнёздышко ;-)

                                                            0
                                                            Немало лет пройдёт прежде чем кто-то отважится использовать это, даже если предположить, что через несколько лет все браузеры будут поддерживать это.
                                                            Может быть можно будет использовать этот новый подход для более быстрой разработки, но затем автоматически транслировать в совместимый CSS-код.
                                                              0
                                                              все это уже используется:
                                                              4 буквы: less, sass
                                                              +1
                                                              Гугл планирует опубликовать начальную спецификацию в этом квартале и реализовать новшества до конца года
                                                              Я правильно понимаю, что этих плюшек нет даже в черновиках и будут поддерживаться только webkit-браузерами? Что-то есть некоторые сомнения, что MS или Mozilla кинутся реализовывать несуществующий стандарт ;)
                                                                –4
                                                                Welcome to SASS…

                                                                Тока что реализация не совсем хорошая. Зачем этот @var? $var_name = #333; Не ужели парсер не справится?
                                                                  +2
                                                                  Это не php. Вы путаете. Не надо.
                                                                    –4
                                                                    Это не php, это sass :) просто там тоже перменный с $ начинаются. а в целом это просто пример того как можно без @var обойтись.
                                                                      0
                                                                      хотя да. в sass $var_name: value; :) без равно. немного забылся.
                                                                        +2
                                                                        Вынужден извинится. Я не работал ни с sass ни c xaml.

                                                                        Haml (XHTML Abstraction Markup Language) — язык разметки для упрощёной генерации XHTML

                                                                        >___<
                                                                        Куда уж проще то?
                                                                        Он же и без того тривиален.
                                                                        А это очередной уровень абстракции. Со всеми вытекающими просторами для затрат ресурсов и глюков.
                                                                          0
                                                                          грубо говря хамл это возможность не писать закрывающие теги. и как плюс заставляет соблюдать отступы. в итоге

                                                                          %div
                                                                            %span
                                                                              %p
                                                                                123

                                                                          развернеться в
                                                                          <div>
                                                                            <span>
                                                                              <p>123</p>
                                                                            </span>
                                                                          </div>

                                                                          а то что доктайп можно записывать в виде — !!! вобще красота :)
                                                                            0
                                                                            Я так понимаю, что все же разработчик пишет xaml шаблоны а потом их что то должно интерпретировать?
                                                                            Не лучше ли использовать тот же zenCoding и на выходе сразу получать полноценный html? Не говоря уже о том, что там используются в качестве синтаксиса уже знакомый синтаксис, используемый в css селекторах.
                                                                            div>span>p

                                                                            развернется в
                                                                            <div>
                                                                              <span>
                                                                                <p></p>
                                                                              </span>
                                                                            </div>
                                                                            


                                                                            С начальными шаблонами все вообще просто. Например html:xs для xhtml 1.0 strict или html:5 для html 5.

                                                                            И самое важное — по сути это просто набор шаблонов редактора. Никаких лишних уровней абстракции или привязки к zencoding. Просто ускорение набора кода, когда вам самим это надо.
                                                                              0
                                                                              принципиально лучше на мой взгляд то что потом читать удобнее шаблон на хамле (он просто короче)

                                                                              второй пункт конечно относиться к рельсам это подстановки переменных.
                                                                              в коде
                                                                              my_var = '123'

                                                                              шаблон
                                                                              .bla#ops= my_var

                                                                              результат
                                                                              <div class='bla' id='ops'>123</div>

                                                                              третье тоже к рельсам привязано. очень часто надо сделать див с id product_123 где 123 порядковый номер продукта.
                                                                              в коде @product = загрузили объект из базы. его id в базе 123

                                                                              %div[@product]

                                                                              <div class='product' id='product_123'>

                                                                              еще много всякого. можно в доках глянуть.

                                                                              з.ы. haml, а не xaml.
                                                                                0
                                                                                интерпретировать нужно (в случае если не рельсы). один скрипт написали и все. тут ничего сложного.
                                                                                  0
                                                                                  Понятно.
                                                                                  Спасибо за ликбез.

                                                                                  Вопрос тут не в сложности написания скрипта.
                                                                                  Вопрос в лишнем уровне абстракции (где можно наплодить багов) и затратах ресурсов на интерпретацию.

                                                                                  Лично я предпочитаю очень жестко разделять данные и представление, так что такие вот или, скажем, смарти-подобные шаблоны мне не по душе.
                                                                                  Но это, наверное, исключительно дело вкуса и предмет холиваров.
                                                                                    0
                                                                                    любой шаблонизатор можно превратить в какашку :) в том же хамле или смарти можно нахерачить циклов. ифов. вывовов моделей и т.д. а можно только выводить нужные переменные и все становится красиво :)
                                                                                      0
                                                                                      вывовов = выводов
                                                                                        0
                                                                                        насчет лишнего уровня абстракции то тут не совсем верно. конечно везде могут быть баги, но перевод %div в <div></div> довольно прост. подстановка переменных и вычислениые выражение это дело тех же рельсов. так что тут количество добавленных багов намного меньше чем количество удобств ( все же читать потом более короткий шаблон удобнее )
                                                                                          0
                                                                                          Главное не пытаться открыть его в браузере ^___^
                                                                                          Впрочем, перед тем как кодировать что то в haml все равно на основе макета верстают html шаблон, который проверяют со всех сторон, так что особых проблем это вызывать не должно.
                                                                                            0
                                                                                            зачем сначала верстать html шаблон? если вы хотите макет без кода то это можно сделать и в хамле. это тот же html тока упрощенный.
                                                                                              0
                                                                                              Это все равно, что предложить сразу написать smarty шаблон.
                                                                                              Или еще лучше — smarty шаблон без psd макета.
                                                                                              Зачем какие то еще заморочки, за которые к тому же приходится платить?
                                                                                                0
                                                                                                smarty все-таки заточен под определенные вещи. haml это почти хтмл. если вы фотошопом режете psd и экспортируете в хтмл то никто вам потом не помешает сделать haml-convert ваш_хтмл выхож_хамл. но чаще всего процесс выглядит так: psd, порезанный psd, haml шаблон с использованием порезанных картинок.

                                                                                                в любом случае — на вкус и цвет товарищей нет :)
                                                                                0
                                                                                Или есть что то, в чем xaml принципиально лучше и удобнее, просто я сходу этого не вижу?
                                                                                  0
                                                                                  в общем-то это синтаксический сахар + уменьшение текста в шаблоне. обе вещи приятны :)
                                                                                0
                                                                                Успокойтесь! Никаких затрат и глюков! Абстракция ХАМЛа даёт возможность сконцентрироваться над семантикой и очень легко перестраивать код. SASS — тоже прелесть, очень удобны миксины, условия (@if), переменные и импорт(инклюд файлов).
                                                                                Верстаю около года для ROR проектов на HAML + SASS. До этого много лет в обычной разметке и CSS. Сейчас с ужасом смотрю на закрывающие тэги и портянки CSS'а.
                                                                          0
                                                                          В scss вроде уже отказались от $
                                                                            0
                                                                            не в курсе. знаю что с $ работает.
                                                                          0
                                                                          Привет, SASS и LESS! Может и HTML когда-нибудь допилят до HAML?
                                                                            +1
                                                                            Не надо :) Личном не хватает Zen-coding. HAML слишком строг, как по мне.
                                                                              0
                                                                              строг он только в отступах.
                                                                                0
                                                                                И в выводах ошибок, а также в подставлении выражений…
                                                                            –1
                                                                            LESS и SASS — это здорово, конечно, но меня лично радует то, что спустя лишь несколько месяцев я смогу использовать это в расширениях Chrome/Chromium.

                                                                            Мое глубоко искреннее мнение заключается в том, что веб-разработчики в своем раю пишут расширения для этих браузеров.

                                                                            А плохие веб-разработчики, не соблюдающие правила русской грамматики, пунктуации и типографики — верстают сайты под IE6!!11
                                                                              +1
                                                                              Я вот не понимаю, почему этого не было еще в CSS1.
                                                                                0
                                                                                Зачем?! Я вот вижу смысл только во вложении, так как часто приходится прописывать еще пару строк, чтоб задать стили для ссылки внутри пункта списка (например) и то как-то коряво смотрится и по размерам те же пару строк получается. Мне часто приходится что-то подправить или изменить в чужом шаблоне и чтоб разобраться нужно время. Как представлю, что какой-то школьник с фриланс ру сверстает шаблон с вложениями модулями, переменными, все это будет конечно в одну строчку (ну или без отбивки почти наверняка) и без каментов — волосы дыбом становятся.
                                                                                  0
                                                                                  *чтоб разобраться в чужом коде
                                                                                    0
                                                                                    переменные как раз и должны решить проблему с «что-нибудь подправить» (конечно если их правильно использовать)
                                                                                      0
                                                                                      Да в том то и беда, что уже сейчас иногда такой быдлокод попадается, что без ста грамм не разобрать, как говорится. Так что все это только усугубит ситуацию. И с кроссбраузерностью намучаемся.
                                                                                        0
                                                                                        ну это как приучить быдлокодеров :) причем учить надо еще в школе такой вещи как семантика. чтобы было понятно почему base_background_color нужно выносить в переменную, а left_to_login_box_button_under_search_field_link_color не стоит :)
                                                                                  +2
                                                                                  о да, давайте усложнять грамматику цсс, а то его как-то слишком просто парсить. как все эти фичи будут доступны из скриптов? никак? тогда какой прок от такой нативной реализации? с тем же успехом лучше заюзать какой-нибудь из препроцессоров не теряя кроссбраузерности.
                                                                                    +1
                                                                                    tenshi, помоему ты не очень понял зачем это нужно.
                                                                                    Например можно вынести все корпоративные цвета/шрифты в переменные и поместить их в некий CSS файлик. В результате на всем сайте можно сменить размер шрифта скажем у заголовков третьего уровня поправив 1 файлик. А не 162. Не говоря уже о том, что можно подключать нужный CSS файлик и менять представление в зависимости от неких обстоятельств не меняя основной css, чем экономить трафик и время загрузки. Про переиспользование кусков кода, которое можно реализовать с помощью модулей думаю все и так понятно. Экономим трафик и получаем возможность сосредоточить контроль над представлением многих подобных блоков в одном модуле.

                                                                                    Это не шаблонизатор и это не имеет ничего общего с программированием.
                                                                                    Это организация кода. Не более.
                                                                                      +1
                                                                                      уж я-то прекрасно понимаю habrahabr.ru/blogs/css/93118/ habrahabr.ru/blogs/css/92878/

                                                                                      практика показывает, что экономия там мизерная. кроссбраузерность убивается напрочь. и по прежнему нельзя динамически менять переменные.
                                                                                        0
                                                                                        Учитывая то, что за ссылки вы привели — не понимаете.
                                                                                        Повторяю… это не шаблонизатор.
                                                                                        Это средства для организации css кода.
                                                                                        С бекендом тут ничего не пересекается.
                                                                                        Вообще.
                                                                                        И средство, которое будет иметь смысл только когда будет поддерживаться во всех актуальных браузерах и будет если не рекомендацией, то хотя бы кандидатом.
                                                                                        А динамические переменные там не нужны. По той просто причине, что это (еще раз, что бы точно быть услышаным) это не шаблонизатор, это средства для лучшей организации css кода.
                                                                                          0
                                                                                          Не корми tenshi, это чревато.
                                                                                            0
                                                                                            Знаю. Но иногда так сложно удержаться.
                                                                                            Наверное глубоко внутри у меня прячется толстый, мохнатый, влюбленный в бесполезные холивары троль.
                                                                                              0
                                                                                              Держи его крепко. Троллей много, а адекватных людей совсем мало.
                                                                                                0
                                                                                                Я буду стараться.
                                                                                            +3
                                                                                            бляпиздец. шаблонизатор — это и есть «средство для лучшей организации кода». если проблемы с пониманием — погугли на тему шаблонов, паттернов, макросов и прочих синонимов. а динамические перменные мне нужны, да, мне охуенно нужны переменные, позволяющие менять визуализацию всей страницы. заводить для этого овер9000 классов — дибилизм, вручную менять размеры всех элементов на странице — геморрой. часто можно выкрутиться меняя размер шрифта и строя размеры от него, но это всего одна переменная и к тому же с побочным эффектом — размер букав меняется.
                                                                                      +5
                                                                                      Всё хорошо, только это вам не свойство с префиксом написать, чтобы старые браузеры его не поняли. Чем сложнее обратная совместимость, тем дальше от нас все эти чудеса из CSS4. Та же история с новой спекой для раскладки.
                                                                                        0
                                                                                        последние редакции стандартов html и css похожи на монстра франкенштейна: кусочек отсюда, кусочек оттуда — по отдельности они хороши, но если взглянуть на картину целиком… пипец, пипец, пипец.
                                                                                        • UFO just landed and posted this here
                                                                                            0
                                                                                            А кто скажет. Когда эти фичи станут доступны в Chrome?
                                                                                              0
                                                                                              Хммм, а разве после обфускации вот такая часть кода:

                                                                                              @var paragraph-size length 12px;
                                                                                              @var paragraph-color color rgba(0,0,0,0);


                                                                                              не превратится в кашу?

                                                                                              @varparagraph-sizelength12px;@varparagraph-colorcolorrgba(0,0,0,0);
                                                                                                0
                                                                                                #header div{...} ведь не превращается в #headerdiv{...}
                                                                                                Если превращается, то что-то у вас там не так.
                                                                                                0
                                                                                                Может, покинуть профессию, пока не поздно? :)) Что-то мне все эти заморочки не по душе.
                                                                                                  0
                                                                                                  Во блин, таки ничего не слышно.

                                                                                                  Only users with full accounts can post comments. Log in, please.