Основни концепции на механизма за шаблони BEMHTML
Шаблоните BEMHTML са изградени на декларативен принцип (като XSLT), всеки шаблон се състои от две части: предикат и тяло на шаблона.
Предикат Е набор от условия, при които се изпълнява шаблонът.
Тяло - инструкции за изпълнение.
Предикатът може да се състои от едно или повече условия. Например:
Обозначението, разделено със запетая, означава, че моделът е приложим само когато са изпълнени всички условия.
Условията могат да бъдат от следните типове:
- изразяване на съвпадение с входното BEM дърво
- приложна мода
- произволно условие
Съвпадение на условията с входно BEM дърво
Използвайки тези условия, можете да изразите съвпадение срещу входното BEM дърво. Например можете да опишете, че шаблонът е приложим за определен блок.
Възможни са следните описания на BEM обекти, към които се прилага шаблонът:
- блок предикат - блок b-меню
- предикат за блоков елемент - блок b-меню, елемент елемент
- предикат за модификатор на блок - блок b-link, мод псевдо да
- предикат на модификатора на елемент - блок b-меню, елемент на елем, текущо състояние на елемМод
Имена и стойности на BEM обекти при такива условия също могат да бъдат JS изрази:
За всеки блок може да са ви необходими няколко шаблона: за тялото, за атрибутите, за съдържанието. Следователно е необходимо да се въведе концепцията за режимите. Наличието на различни модове ви позволява да напишете няколко шаблона за едно и също BEM обект, всеки от които създава своя част от изходния HTML на този BEM обект.