Префикс h-
(holster) задаётся блоку-обёртке, который используется для внешнего управления блоком или группой блоков, например, для задания отступов или ширины.
Т.е. если у нас есть три блока b-info
и у каждого из них должен быть отступ слева 1em
, то лучше всего не задавать эти отступы у каждого блока, а обернуть эту группу блоков в блок h-info
и задать отступ ему. Блоки-обёртки можно точно так же модифицировать постфиксом (о модификации чуть позже), как и обычные блоки.
Важно понимать, что h-блок это такой же блок, как и b-блок. По него точно так же надо заводить отдельную директорию и отдельный файл (о блоках на файловой системе позже).
Так же следуют понимать, что блоки могут использоваться без обёртки и если внутрений отступ важен для блока, то надо использовать не holster, а inner.
holster vs. inner
Бывает надо задать блоку отступ (margin
или padding
), для чего вводится дополнительный элемент. Неправильно использовать h-
с тем же именем, что и имя блока, т.е. вот так
<div class="h-page-title">
<div class="b-page-title">
<h1>Заголовок страницы</h1>
</div>
</div>
Мы пришли к соглашению, что если внутри блока нужен дополнительный элемент для отступов (или ещё для чего), то для него используется класс с именем блока и постфиксом -i
(inner):
<div class="b-page-title">
<div class="b-page-title-i">
<h1>Заголовок страницы</h1>
</div>
</div>
А по новой нотации block-undistorting.wiki, надо использовать постфикс __i
:
<div class="b-page-title">
<div class="b-page-title__i">
<h1>Заголовок страницы</h1>
</div>
</div>
l-controls
, илиb-controls__i
?Если у блока должен быть внутренний отступ, то почему нельзя задать его в CSS, зачем вообще вводить дополнительный тег b-page-title-i?