В мире фронтенд-разработки поддержание чистоты и масштабируемости кода имеет решающее значение. Одним из популярных подходов, помогающих достичь этой цели, является соглашение об именах BEM. BEM означает «Блок», «Элемент» и «Модификатор» и обеспечивает структурированный способ именования классов CSS. В этой статье мы рассмотрим различные методы и приведем примеры кода, которые помогут вам освоить BEM-именование в ваших проектах.
- Базовая структура БЭМ:
Методология БЭМ имеет определенную структуру именования:- Блок: автономный компонент, не зависящий от других компонентов.
- Элемент: часть блока, не имеющая значения за пределами родительского блока.
- Модификатор: класс, который изменяет поведение или внешний вид блока или элемента.
Вот пример названия классов БЭМ:
<div class="block">
<div class="block__element">
<div class="block__element--modifier"></div>
</div>
</div>
-
Именование блоков.
При именовании блоков используйте строчные буквы и дефисы для разделения слов:<div class="header"></div> -
Именование элементов.
Чтобы определить элементы внутри блока, используйте два подчеркивания, чтобы разделить имя блока и имя элемента:<div class="header"> <div class="header__logo"></div> <div class="header__menu"></div> </div> -
Модификаторы имен:
Модификаторы используются для изменения внешнего вида или поведения блоков или элементов. Используйте два дефиса, чтобы разделить имя элемента или блока и имя модификатора:<div class="header"> <div class="header__logo header__logo--large"></div> <div class="header__menu header__menu--active"></div> </div> -
BEM в CSS:
Примените соглашение об именах BEM в своем CSS, чтобы оно соответствовало структуре HTML:.header { /* Block styles */ } .header__logo { /* Element styles */ } .header__logo--large { /* Modifier styles */ } .header__menu { /* Element styles */ } .header__menu--active { /* Modifier styles */ } -
BEM в JavaScript:
Вы также можете использовать BEM для именования классов в JavaScript, чтобы улучшить читаемость кода:const logoElement = document.querySelector('.header__logo'); logoElement.classList.add('header__logo--large');
Внедрение соглашения об именах BEM в ваших проектах может значительно повысить удобство сопровождения и масштабируемость кода. Он обеспечивает четкую структуру именования классов CSS и обеспечивает единообразие вашей кодовой базы. Следуя примерам и рекомендациям, приведенным в этой статье, вы будете на пути к освоению БЭМ-именований.
Помните, что использование единого соглашения об именах, такого как BEM, полезно не только для вас как разработчика, но также для вашей команды и будущих участников. Начните внедрять БЭМ в свои внешние проекты уже сегодня и наслаждайтесь преимуществами, которые он приносит!