Skip to content

Специальные атрибуты

Vasilij Chernov edited this page Jun 14, 2013 · 1 revision

h1. Специальные атрибуты

Здесь приводятся все специальные атрибуты SLCF и описывается их назначение.

h2. tag

Задает html-тег для узла.

h2. block

Атрибут block имеет два значения, в зависимости от бэм-сущности к которой он применяется.

  1. прямое задание родительского блока (для бэм-элементов)
  2. перехват родительского блока (для дополнительных бэм-сущностей)
См. примеры в соответствующих разделах Верстка_в_БЭМ-терминах

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>