Создание чистых и структурированных таблиц стилей важно для каждого веб-разработчика. Использование методологии BEM (Block, Element, Modifier) в сочетании с препроцессором SCSS (Sass) позволяет организовать и поддерживать. В этом руководстве мы рассмотрим основные принципы и лучшие практики использования BEM и SCSS для написания чистых и удобных для поддержки таблиц стилей.
Что такое BEM?
BEM (Block, Element, Modifier) — это методология именования CSS-классов, которая позволяет создавать читаемый и поддерживаемый код. Она состоит из трех основных компонентов:
- Блок (Block): независимый компонент, который может быть повторно использован.
- Элемент (Element): часть блока, которая не имеет смысла вне контекста блока.
- Модификатор (Modifier): состояние или вариация блока или элемента.
Примеры именования
Рассмотрим примеры именования классов в BEM:
- Блок: .button
- Элемент: .button__icon
- Модификатор: .button—primary
Такая структура помогает четко разделять различные части интерфейса и упрощает их поддержку.

- ПОКАЖЕМ, КАК РАЗВЕРНУТЬ МОДЕЛЬ нейросети DEEPSEEK R1 ПРЯМО НА СВОЁМ КОМПЬЮТЕРЕ
- Где и как применять? Потестируем модель после установки на разных задачах
- Как дообучить модель под себя?
Что такое SCSS?
SCSS (Sassy CSS) можно расценивать как расширение для CSS, которое делает язык проще и функциональнее, а также лучше в поддержке. Есть функции, переменные, миксины.
Примеры использования
Пример использования переменных и вложенных селекторов в SCSS:
$primary-color: #3498db;
.button {
background-color: $primary-color;
&__icon {
color: white;
}
&--primary {
border: 1px solid $primary-color;
}
}Такой подход упрощает изменение и поддержку стилей.
Совместное использование BEM и SCSS
- Структурирование файлов
Для удобства работы и поддержки кода рекомендуется структурировать файлы SCSS по методологии BEM.
Пример структуры проекта:
/styles /blocks _button.scss _card.scss /elements _icon.scss _title.scss /modifiers _primary.scss _secondary.scss main.scss
- Использование переменных и миксинов
SCSS позволяет использовать переменные и миксины для уменьшения дублирования кода.
Пример:
// Переменные
$font-stack: 'Helvetica, sans-serif';
$primary-color: #333;
// Миксин
@mixin border-radius($radius) {
-webkit-border-radius: $radius;
-moz-border-radius: $radius;
-ms-border-radius: $radius;
border-radius: $radius;
}
// Применение миксина и переменных
.button {
font: 100% $font-stack;
color: $primary-color;
@include border-radius(5px);
}
Преимущества инструментов
Преимущества BEM
Плюсы методологии BEM:
- Читаемость и поддерживаемость кода: именование классов позволяет сразу понять структуру и взаимосвязи элементов.
- Повторное использование кода: блоки и элементы можно легко повторно использовать в различных частях проекта.
- Устойчивость к изменениям: модификаторы позволяют легко изменять стили без влияния на другие части интерфейса.
Преимущества SCSS
Препроцессор предлагает:
- Модульность: возможность разделения кода на небольшие файлы упрощает организацию проекта.
- Использование переменных: можно управлять цветом, размером и другими свойствами
- Миксины и функции: повторное использование блоков кода.
Примеры кода
Создание кнопки
Рассмотрим пример создания кнопки:
// Файл: _button.scss
$button-padding: 10px 20px;
.button {
padding: $button-padding;
background-color: $primary-color;
border: none;
cursor: pointer;
&__icon {
margin-right: 5px;
}
&--primary {
background-color: darken($primary-color, 10%);
}
}
Интеграция в основной файл
// Файл: main.scss @import 'blocks/button'; @import 'elements/icon'; @import 'modifiers/primary';
Заключение
Использование методологии BEM и препроцессора SCSS позволяет создавать чистые, структурированные и легко поддерживаемые таблицы стилей. Следуя принципам, вы сможете значительно улучшить качество вашего кода и упростить процесс разработки.
- Освой нейросеть Perplexity и узнай, как пользоваться функционалом остальных ИИ в одном
- УЧАСТВОВАТЬ ЗА 0 РУБ.
- Расскажем, как получить подписку
- ПОКАЖЕМ, КАК РАЗВЕРНУТЬ МОДЕЛЬ нейросеть DEEPSEEK R1 ПРЯМО НА СВОЁМ КОМПЬЮТЕРЕ