Skip to content

Latest commit

 

History

History
55 lines (41 loc) · 2.19 KB

b-isolate.md

File metadata and controls

55 lines (41 loc) · 2.19 KB

<b:isolate>

Инструкция <b:isolate/> указывает, что разметка шаблона и его стили должны быть изолированы. Это означает, что для каждого шаблона генерируется свой уникальный префикс и добавляется ко всем именам классов. Такой подход позволяет избежать конфликта имен и смешивания стилей разных компонент.

Пример шаблона:

<b:isolate/>
<b:style>
  .some-class {
    color: red;
  }
</b:style>

<div class="some-class">Компонент</div>

Результат:

.i1__some-class {
  color: red;
}
<div class="i1__some-class">Компонент</div>

По умолчанию префикс генерируется случайным образом. Указав атрибут prefix, можно задать собственный префикс для изоляции:

<b:isolate prefix="my-prefix_"/>
<b:style>
  .some-class {
    color: red;
  }
</b:style>

<div class="some-class">Компонент</div>

Результат:

.my-prefix_some-class {
  color: red;
}
<div class="my-prefix_some-class">Компонент</div>

Инструкция действует только для корневого шаблона (тот, что используется) и не наследуется от включаемых шаблонов (фрагментов). Если шаблон в своем описании имеет инструкцию <b:isolate> и при этом включается в другой шаблон через <b:include>, то инструкция игнорируется. Если требуется изолировать только включаемый фрагмент, то нужно использовать атрибут <b:include isolate/>. Так шаблон, включающий другие шаблоны, определяет, что и как нужно изолировать.