Pull to refresh

Comments 128

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

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

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

тут вопрос отнюдь не технический. Вопрос в том, чтобы объяснить заказчику про graceful degradation.
И да, сделать degradation действительно graceful.
UFO just landed and posted this here
UFO just landed and posted this here
Честно говоря, мне просто нравится XSLT:)
Классно, так и вижу конструкции
@var X 12px;
-webkit-var X 12px;
-moz-var X 12px;
страшно представить, как это будет выглядеть в IE
для IE будет специальный js, который будет подсовывать ему css в привычном виде %)
CSS фреймворки станут Фреймворками с большой буквы.
я бы уже сейчас не отказался от js-фреймворка, который позволит мне писать CSS по стандартам и будет заниматься улаживанием разногласий между браузерами. мечты =)
UFO just landed and posted this here
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 явно слабо понимает, что реально нужно веб-разработчикам.
UFO just landed and posted this here
Одно другому не мешает. При этом переменные и наследование (mixins) — потребности куда более фундаментальные.
UFO just landed and posted this here
думаю, что мое мнение разделяет большинство верстальщиков
Скромно. ;-)

Фундамент — это синтаксис. Синтаксис CSS крайне убог и лишён тех базовых возможностей, о которых идёт речь в этой теме. Объём человеческих ресурсов, необходимых для того, чтобы единожды из продумывать и сделать стандартом, крайне мал.
UFO just landed and posted this here
UFO just landed and posted this here
Без этих «базовых» возможностей я проверстал 11 лет.

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

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

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

%div
  %span
    %p
      123

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

а то что доктайп можно записывать в виде — !!! вобще красота :)
UFO just landed and posted this here
принципиально лучше на мой взгляд то что потом читать удобнее шаблон на хамле (он просто короче)

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

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

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

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

практика показывает, что экономия там мизерная. кроссбраузерность убивается напрочь. и по прежнему нельзя динамически менять переменные.
UFO just landed and posted this here
UFO just landed and posted this here
Держи его крепко. Троллей много, а адекватных людей совсем мало.
UFO just landed and posted this here
бляпиздец. шаблонизатор — это и есть «средство для лучшей организации кода». если проблемы с пониманием — погугли на тему шаблонов, паттернов, макросов и прочих синонимов. а динамические перменные мне нужны, да, мне охуенно нужны переменные, позволяющие менять визуализацию всей страницы. заводить для этого овер9000 классов — дибилизм, вручную менять размеры всех элементов на странице — геморрой. часто можно выкрутиться меняя размер шрифта и строя размеры от него, но это всего одна переменная и к тому же с побочным эффектом — размер букав меняется.
Всё хорошо, только это вам не свойство с префиксом написать, чтобы старые браузеры его не поняли. Чем сложнее обратная совместимость, тем дальше от нас все эти чудеса из CSS4. Та же история с новой спекой для раскладки.
последние редакции стандартов html и css похожи на монстра франкенштейна: кусочек отсюда, кусочек оттуда — по отдельности они хороши, но если взглянуть на картину целиком… пипец, пипец, пипец.
UFO just landed and posted this here
А кто скажет. Когда эти фичи станут доступны в 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{...}
Если превращается, то что-то у вас там не так.
Может, покинуть профессию, пока не поздно? :)) Что-то мне все эти заморочки не по душе.
Во блин, таки ничего не слышно.
Sign up to leave a comment.

Articles