Zen CSS
Что может быть важнее для верстальщика, чем комфортная и быстрая работа с HTML-кодом? Правильно — только комфортная и быстрая работа с CSS-кодом. Ведь основная часть работы современного разработчика происходит именно с CSS.
Поэтому, вслед за рассказом о редакторе TextMate и пакете настроек Zen HTML, следует обзор пакета Zen CSS. Для начала, предлагаю вам небольшой скринкаст, демонстрирующий его основные возможности:
Подобно принципам работы предыдущего пакета, принципы этого основаны на использовании псевдонимов для CSS-свойств. Например:
bg → background:|;
bgc → background-color:#|FFF|;
Таким образом, развёрнутое свойство готово к введению значения на месте появления курсора |
. В случае, когда значение свойства предсказуемо, как в нашем примере с цветом фона, псевдоним разворачивается со значением по умолчанию, которое выделено и готово к редактированию |…|
.
Но помимо длинных свойств, существует некоторое количество достаточно сложных для написания значений, к примеру — list-style-type:decimal-leading-zero
. В этой ситуации нам на помощь приходит второй тип псевдонимов — с заданным значением:
lst:n → list-style-type:none;
lst:declz → list-style-type:decimal-leading-zero;
Другая сложность кроется в сокращённом написании свойств — зачастую, нам приходится писать длинные однотипные конструкции вроде font:1em Arial,sans-serif
или padding:10px 0 2px 0
. Для таких случаев предусмотрены специальные псевдонимы с предустановленными комбинациями значений:
f+ → font:1em Arial,sans-serif;
bg+ → background:#FFF url(../i/) 0 0 no-repeat;
Плюс в данном случае символизирует разворачивание псевдонима в сложное правило. Если нам нужно описать сокращённое свойство блока при помощи двух, трёх или четырёх значений — top|bottom + right|left
, top + right|left + bottom
, top + right + bottom + left
— то мы используем следующий тип псевдонимов:
p:2 → padding:|0| 0;
p:3 → padding:|0| 0 0;
p:4 → padding:|0| 0 0 0;
Главная ценность подобных комбинаций заключается в том, что после разворачивания вы имеете возможность передвигаться по списку значений при помощи клавиши Tab, начиная с первого выделенного значения.
Такой тип псевдонимов предусмотрен только для самых часто употребимых случаев использования двойных, тройных и четверных сокращений — для свойств padding
и margin
. В дальнейшем, если это окажется востребованным, методика заполнения комбинаций свойств может быть использована для свойств border
, outline
, а также для значений rgb
, rect
и подобных им.
Пакет включает в себя все свойства CSS 2.1, а также некоторую экзотику из CSS 3, но пока только в самом простом виде, без широкого круга предустановленных значений:
bsz → box-sizing:|;
bsh → box-shadow:|;
bi → border-image:|;
brs → border-radius:|;
Доступны также типовые варианты решений проблем с IE:
bg:ie → filter:[…]AlphaImageLoader(src='i/|',sizingMethod='crop');
op:ie → filter:alpha(opacity=|);
exp → expression(|)
fr → filter:|;
z → zoom:1;
Ну и конечно некоторые полезные мелочи, повешенные на горячие клавиши — фигурные скобки:
Cmd + Enter →
{
|
}
…и заголовки структурных элементов вашего CSS-файла:
Cmd + Alt + / →
/* |
---------------------------------------- */
Следующая публикация из серии Zen Coding, запланированная на ближайшие дни, будет содержать оба пакета настроек — Zen HTML и Zen CSS, а также некоторые планы по их развитию и поддержке.
Энергичный инструментал для скринкаста — группа Skafandr с композицией «Тяжёлый шар земной».
Комментарии
21Я так понял, это все реализовано в виде отдельно программы? А где ее можно скачать?
z = zoom? А почему не z-indeх?
Zodios, это пакеты настроек для редактора TextMate, который доступен на платформе Mac OS X. Однако и на Windows есть программы, которые объявили об их поддержке, в частности — E Text Editor.
Павел, наверное всё-таки из-за более частой употребимости. Для z-index у меня есть псевдоним «zi». Хотя это не принципиальная позиция, мнения заинтересованных в развитии бандла людей с удовольствием приму ;)
Супер бандл! Думаю если запомнить все, то можно будет также шустро кодить. А где бандл брать то? :-)
На мой взгляд, зря переопределили cmd+enter, по-умолчанию на него повешена очень удобная штука (перевод каретки на новую строку с любого места)
А скобки и так можно довольно быстро ставить (поставил открывающую TM автоматически ставит закрывающую, а потом просто нажимаешь enter), единственное отличие от вашего сниппета в том, что закрывающая скобка будет в начале строки а не после таба
Товарищи, желающие попробовать бандл, внимательнее читаем предпоследний абзац ;) Идут последние приготовления…
Panya, мне оказалась важна именна такая комбинация скобок/табов. Если придумаю каким образом только для CSS выставлять скобки именно так, то, возможно, откажусь от этого варианта. А пока одно движение гораздо удобнее, чем: пробел + скобка + enter.
Такие штуки есть в TopStyle с незапамятных времен. Действительно, очень удобно.
Вадим, у меня скобки автоматически дописываются. То есть, ставишь одну, появляется вторая, между ними курсор. Это очень удобно, но когда нажимаю enter, то нижняя скобка прижимается к левому краю (то есть не как у тебя). Не знаешь где и как это поправить? Я бы бы очень благодарен.
fetis, чертовски верно. Нынешние бандлы выросли именно из моих экспериментов с автоподстановкой в TopStyle. Но, к сожалению, механизмы подстановки в TopStyle довольно примитивны — хотя в своё время мне их хватало с головой. Так что воспринимайте эти бандлы как некий шаг вперёд в развитии моих идей быстрого кодинга )
Максим, честно говоря, я не готов определить какая именно часть дефолтного бандла CSS отвечает за это, но факт есть факт — он так умеет. Довольного большую часть функциональности я позаимствовал их него.
Хорошо вам на маках))) Я вот всё мечтаю систему сниппетов в Komodo до похожего состояния довести.
Кстати, чем обоснована запись имён тегов в верхнем регистре?
Имена элементов в верхнем регистре — один из способов отделить селектор .body от body, без пристального всматривания, сходу. Подробности — в скором переиздании доклада «CSS-менеджмент» ;)
Не к статье будет сказано, но нашел такую группу http://pepelsbei.spb.ru )))
@pepelsbey | один из способов отделить селектор .body от body
Грамотная подсветка рулит.
@Михаил | Хорошо вам на маках))) Я вот всё мечтаю систему сниппетов в Komodo до похожего состояния довести.
Можно юзать, e-texteditor или intype
Я пользуюсь в TextMate темой minimal Theme, там, к сжл, такого нет. Мне бы сил и возможностей написать свою расцветку… но это дело почище бандлов.
Я работаю под win и под linux, поэтому нужен были кроссплатформенный редактор. А e и intype - знаю давно, но они оба только под win. Ну да всё это разговоры в пользу бедных, что называется. Здесь важнее идея именования бандлов, за что отдельное спасибо Вадиму.
Я тоже. Там различаются по цвету класс, id и селектор.
А ведь точно. Сглупил.
Думаю, нужно будет пересмотреть кое-какие привычные представления.
А будет ли поддержка для Линукс для Gedit в частности... Или для Aptana&
Иван, для Gedit есть частичная поддержка: zen-coding for gedit
Как скоро устраниться проблема с горячими клавишами в zencoding for Npp под Win7.
kolyuchii, лучше вам обратиться либо к автору реализации под Notepad++, либо к Сергею Чикуёнку. Или задавайте вопросы @zen_coding.