Обновить

Комментарии 128

Через некоторое время заголовок на хабре: «ООП в CSS»
скорос слова: «Я программирую на CSS и HTML» не будут вызывать улыбку
На мой взгляд HTML+CSS — это средства верстки контента, а никак не программирования.
И вот эти сложные заморочки принесут пользу только тем кто делает проект «в одно рыло»,
для тех же кто делает что либо в команде, все больше размывается граница между программером и верстальщиком.
В том плане, что непонятно кому из них реализовывать тот или иной ничтяк.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
IDE на что тогда?

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

Не обратил внимание на тип переменной, в предыдущем комментарии после length подразумевается двоеточие,
в xsl переменные это константы, а параметры — это переменные.
DSSSL-спецификацию бы изучить, язык трансформаций sgml-размеченных документов.
Т.e. что-то такое:
@var{
	paragraph-size: 12px;
	paragraph-color: rgba(0,0,0,0)
	}
НЛО прилетело и опубликовало эту надпись здесь
Нет, это объявление нескольких переменных без типов данных (length, color и т.д.)
Модули надо через use импортироватьё
так вы про примеси говорите. Зачем в переменной объявлять несколько значений, это как вообще…
Не примеси: это объявление нескольких переменных в одном блоке @var вместо планируемого поштучного с непонятно зачем нужным упоминанием типа данных — не знаю, мне бы так удобнее было.
Какие хорошие хабратопики мне снятся… но я же знаю, что я сейчас сплю. Такого не бывает Мне нужен выброс и ДиКаприо…
нифигасе! где берешь? в личку
офигеть, на хабре еще плюсуют комментари в духе «отсыпь травы»
Их всегда плюсуют.
Только пару месяцев назад думал обо всем этом! супер!
Все это есть в LESS.
НЛО прилетело и опубликовало эту надпись здесь
ну не кажется мне, что это все будет иметь критический характер.
LESS уже есть и работает, а вот когда это все заработает из коробки в ИЕ боооольшой вопрос.
IE9 — уже большой скачок вперёд, так что, возможно, ребята из Редмонда что-то поняли и «больше так не будут» (с)
Цикл выпуска и обновления ИЕ не идет ни в какое сравнение с аналогичными циклами других браузеров.
Не очень понятно, почему не сказать честно: «чуваки из LESS» сделали огромный шаг вперед, теперь мы это поняли и понемного станем вводить в стандарт.
НЛО прилетело и опубликовало эту надпись здесь
мечты-мечты… тут даже прямое наследование только-только применять начал, когда окончательно забил на ИЕ6, а уж такого рода конструкции и вовсе где-то за пределами астрала(
а я уже применяю :)

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

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

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

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

.myclass{
border: var(x) var(y) var(z);
}
Вы слегка не поняли суть, я намекал на то, что каждый браузер изобретает свой велосипед.
а, понял. Ну так, видимо, w3c хотят все свести к тому, чтобы браузеры наконец начали работать по стандартам, а не стандарты писали бы под браузеры (как сейчас происходит).
У меня вот тоже появилось некое чувство дежа вю…
Если вышеописанные новшества реализуют почти все браузеры, будут конфликты с LESS.
Если вы ознакомитесь, как работают вышеназванные библиотеки, вы перестанете писать ахинею.
Действительно, не совсем понятно зачем гугл придумывает свой велосипед (хотя, пускай).

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

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

без ваших Layout Module я проверстал много лет
НЛО прилетело и опубликовало эту надпись здесь
Есть очень много вещей, которые я хотел бы видеть в CSS. И первая из них — это какие-нибудьт нормальные стандартоутверждатели, а не тормоза из W3C.
НЛО прилетело и опубликовало эту надпись здесь
стандарт это очень правильно если все браузеры его будут поддерживать :)
Это «крайне мал» на самом деле несколько лет упорного труда
Несколько лет это, к сожалению, только для тормозов из CSS WG, не способных понять даже то, зачем надо добавить в спецификацию CSS подсвойства background-position-x/-y. overflow-x/-y добавили, а background-position-x/-y, видите ли, не считают оправданным. Притом, что уже существуют две независимых реализации — IE и WebKit — возьми да просто задокументируй. Теоретики.
мне иногда кажется, что они — не теоретики, а мудаки
НЛО прилетело и опубликовало эту надпись здесь
да микромелкие уже сами в В3Ц, и тыкать не надо.
тыкать надо гребанных недоюзеров, сидящих на ИЕ6/7.
и сжигать на кострах уродов-сисадминов, не обновляющи браузеры в корпоративных сетях.
НЛО прилетело и опубликовало эту надпись здесь
да, практика исключительно мажорных версий, да еще и так редко — порочна. за это действительно стоит натыкать.
НЛО прилетело и опубликовало эту надпись здесь
Программисты вероломно врываются в уютное веб-дизайнерское гнёздышко ;-)

Немало лет пройдёт прежде чем кто-то отважится использовать это, даже если предположить, что через несколько лет все браузеры будут поддерживать это.
Может быть можно будет использовать этот новый подход для более быстрой разработки, но затем автоматически транслировать в совместимый CSS-код.
все это уже используется:
4 буквы: less, sass
НЛО прилетело и опубликовало эту надпись здесь
Welcome to SASS…

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

%div
  %span
    %p
      123

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

а то что доктайп можно записывать в виде — !!! вобще красота :)
НЛО прилетело и опубликовало эту надпись здесь
принципиально лучше на мой взгляд то что потом читать удобнее шаблон на хамле (он просто короче)

второй пункт конечно относиться к рельсам это подстановки переменных.
в коде
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.
интерпретировать нужно (в случае если не рельсы). один скрипт написали и все. тут ничего сложного.
НЛО прилетело и опубликовало эту надпись здесь
любой шаблонизатор можно превратить в какашку :) в том же хамле или смарти можно нахерачить циклов. ифов. вывовов моделей и т.д. а можно только выводить нужные переменные и все становится красиво :)
вывовов = выводов
насчет лишнего уровня абстракции то тут не совсем верно. конечно везде могут быть баги, но перевод %div в <div></div> довольно прост. подстановка переменных и вычислениые выражение это дело тех же рельсов. так что тут количество добавленных багов намного меньше чем количество удобств ( все же читать потом более короткий шаблон удобнее )
НЛО прилетело и опубликовало эту надпись здесь
зачем сначала верстать html шаблон? если вы хотите макет без кода то это можно сделать и в хамле. это тот же html тока упрощенный.
НЛО прилетело и опубликовало эту надпись здесь
smarty все-таки заточен под определенные вещи. haml это почти хтмл. если вы фотошопом режете psd и экспортируете в хтмл то никто вам потом не помешает сделать haml-convert ваш_хтмл выхож_хамл. но чаще всего процесс выглядит так: psd, порезанный psd, haml шаблон с использованием порезанных картинок.

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

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

А плохие веб-разработчики, не соблюдающие правила русской грамматики, пунктуации и типографики — верстают сайты под IE6!!11
Я вот не понимаю, почему этого не было еще в CSS1.
Зачем?! Я вот вижу смысл только во вложении, так как часто приходится прописывать еще пару строк, чтоб задать стили для ссылки внутри пункта списка (например) и то как-то коряво смотрится и по размерам те же пару строк получается. Мне часто приходится что-то подправить или изменить в чужом шаблоне и чтоб разобраться нужно время. Как представлю, что какой-то школьник с фриланс ру сверстает шаблон с вложениями модулями, переменными, все это будет конечно в одну строчку (ну или без отбивки почти наверняка) и без каментов — волосы дыбом становятся.
*чтоб разобраться в чужом коде
переменные как раз и должны решить проблему с «что-нибудь подправить» (конечно если их правильно использовать)
Да в том то и беда, что уже сейчас иногда такой быдлокод попадается, что без ста грамм не разобрать, как говорится. Так что все это только усугубит ситуацию. И с кроссбраузерностью намучаемся.
ну это как приучить быдлокодеров :) причем учить надо еще в школе такой вещи как семантика. чтобы было понятно почему base_background_color нужно выносить в переменную, а left_to_login_box_button_under_search_field_link_color не стоит :)
о да, давайте усложнять грамматику цсс, а то его как-то слишком просто парсить. как все эти фичи будут доступны из скриптов? никак? тогда какой прок от такой нативной реализации? с тем же успехом лучше заюзать какой-нибудь из препроцессоров не теряя кроссбраузерности.
НЛО прилетело и опубликовало эту надпись здесь
уж я-то прекрасно понимаю habrahabr.ru/blogs/css/93118/ habrahabr.ru/blogs/css/92878/

практика показывает, что экономия там мизерная. кроссбраузерность убивается напрочь. и по прежнему нельзя динамически менять переменные.
НЛО прилетело и опубликовало эту надпись здесь
Не корми tenshi, это чревато.
НЛО прилетело и опубликовало эту надпись здесь
Держи его крепко. Троллей много, а адекватных людей совсем мало.
НЛО прилетело и опубликовало эту надпись здесь
бляпиздец. шаблонизатор — это и есть «средство для лучшей организации кода». если проблемы с пониманием — погугли на тему шаблонов, паттернов, макросов и прочих синонимов. а динамические перменные мне нужны, да, мне охуенно нужны переменные, позволяющие менять визуализацию всей страницы. заводить для этого овер9000 классов — дибилизм, вручную менять размеры всех элементов на странице — геморрой. часто можно выкрутиться меняя размер шрифта и строя размеры от него, но это всего одна переменная и к тому же с побочным эффектом — размер букав меняется.
Всё хорошо, только это вам не свойство с префиксом написать, чтобы старые браузеры его не поняли. Чем сложнее обратная совместимость, тем дальше от нас все эти чудеса из CSS4. Та же история с новой спекой для раскладки.
последние редакции стандартов html и css похожи на монстра франкенштейна: кусочек отсюда, кусочек оттуда — по отдельности они хороши, но если взглянуть на картину целиком… пипец, пипец, пипец.
НЛО прилетело и опубликовало эту надпись здесь
А кто скажет. Когда эти фичи станут доступны в Chrome?
Хммм, а разве после обфускации вот такая часть кода:

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


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

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

Публикации