-
Notifications
You must be signed in to change notification settings - Fork 2
Специальные атрибуты
h1. Специальные атрибуты
Здесь приводятся все специальные атрибуты SLCF и описывается их назначение.
h2. tag
Задает html-тег для узла.
h2. block
Атрибут block имеет два значения, в зависимости от бэм-сущности к которой он применяется.
- прямое задание родительского блока (для бэм-элементов)
- перехват родительского блока (для дополнительных бэм-сущностей)
h2. noblock
Исключает блок из потока "родительских" блоков. Нужен, если блок мешает наследованию "блочности" от другого блока выше по дереву. Применяется для бэм-блоков. КО См. пример в соответствующих разделах Верстка_в_БЭМ-терминах#Элемент-блока
h2. noblock для дополнительных сущностей
Атрибут noblock может применяться и к дополнительным сущностям. При этом его значение меняется. Поскольку дополнительная сущность по своей природе не участвует в потоке наследования "блочности" (это можно сделать только принудительно через атрибут block), то и исключать её из потока "родительских блоков" бессмыслено. Поэтому, атрибут noblock к дополнительной сущности исключает саму дополнительную сущность. При этом *не исключаются атрибуты*, которые она несет - как бэм-атрибуты, так и атрибуты html. Т.е. появляется возможность прокидывать атрибуты к основным сущностям, не трогая самих сущностей. Это может быть полезно при использовании шаблонов, вместо того, чтобы множить похожие шаблоны, можно вызывать один с разными параметрами для блока. Таким образом noblock на доп. сущности говорит о том, что перед нами по сути не доп. сущность, а доп.параметры. основной сущности. В связи с этим, доп. сущность с noblock следует всегда называть params, чтобы легко отличать её от настоящих доп. сущностей.
<code class="xml"> <b:link> <a:params noblock="true" tag="span" x:title="Title"> Text </b:link> </code>
Результат:
<code class="html"> <span class="b-link" title="Title"> Text </span> </code>
h2. block-of
Задаёт блок для элемента, являющегося дополнительной сущностью.
См. примеры в соответствующих разделах Верстка_в_БЭМ-терминах
h2. noclass
Используется, чтобы не выводить html-атрибут class для узла. Как правило, применяется для структурных html-тегов (html, head, body, link, script, meta)
h2. nobem
Используется, чтобы не выводить БЭМ-классы в html-атрибуте class узла. Выведены будут только прямые классы, заданные через alxc-нэймспейс.
<code class="xml"> <b:page nobem="true"> <alxc:page> Text </b:page> </code>
Результат:
<code class="html"> <div class="page"> Text </div> </code>
Использование атрибута nobem не влияет на назначение семантики или любые другие правила преобразований, только исключает бэм-классы из конечного документа.
h2. comment
Дает возможность задать для основной бэм-сущности обертывающий html-комментарий.
Исходный код:
<code class="xml"> <b:header comment="шапка"> <e:contacts comment="контакты"> Телефон: 123-456, Email: [email protected] </e:contacts> </b:header> </code>
Результат:
<code class="html"> <div class="b-header"> <div class="b-header__contacts"> Телефон: 123-456, Email: [email protected] </div> </div> </code>