Именование классов в CSS всегда было трудным для меня ». К счастью, несколько месяцев назад я наткнулся на соглашение об именах БЭМ. Соглашение об именах - это согласованный стиль именования вещей (в данном случае CSS). Существуют различные соглашения об именах CSS, такие как SMACSS, AMCSS, БЭМ и т. Д. Однако в этой статье я буду говорить о БЭМ.
Предварительные требования
- Базовые знания HTML и CSS.
Что такое БЭМ
БЭМ - это сокращение от модификаторов элементов блока и соглашение об именах CSS для классов в HTML и CSS.
Блок относится к такому компоненту, как верхний колонтитул, нижний колонтитул, навигация, кнопка, входы и тому подобное.
Элемент - находятся внутри блока (компонентов). их можно рассматривать как дочерние элементы родительского компонента в целом.
С другой стороны, модификаторы используются для стилизации блока или элемента, не затрагивая другие несвязанные компоненты.
Зачем нужен БЭМ
- БЭМ помогает нам писать CSS, который легко читать и поддерживать.
- В больших проектах БЭМ гарантирует отсутствие конфликтующих стилей.
- Он передает функцию и цель кода CSS.
- Это помогает разработчикам лучше понять взаимосвязь между HTML и CSS в данном проекте.
БЭМ помогает нам писать CSS, который легко читать и поддерживать.
- В больших проектах БЭМ гарантирует отсутствие конфликтующих стилей.
- Он передает функцию и цель кода CSS.
- Это помогает разработчикам лучше понять взаимосвязь между HTML и CSS в данном проекте.
Как использовать БЭМ
Теперь, когда мы знаем, что такое БЭМ и почему мы должны его использовать, самое время погрузиться в то, как это сделать. Родительские компоненты названы с помощью одного дефиса, как показано в примере ниже.
<section class=”about-us”>
Имена классов элементов, с другой стороны, получаются путем добавления двух знаков подчеркивания (__), за которыми следует имя элемента, например,
<h3 class=”about-us__title”>best title </h3> <p class=”about-us__text”>I love bunnies</p>
при именовании модификаторов мы используем два дефиса (-), за которыми следует имя элемента
<span class=”about-us__title — green”>ever</span>
Собирая все вместе, мы получаем:
<section class=”about-us”> <h3 class=”about-us__title”>best title <span class=”about-us__title — green”>ever</span> </h3> <p class=”about-us__text”>I love bunnies</p> </div>
мы могли бы стилизовать это так
.about-us{ margin: 0 auto; color: #fff; } .about-us__title { font-weight: bold; } .about-us__title — green { color: #05b993; } .about-us__text { font-size: 24px; }
Scss упрощает стилизацию БЭМ. Стилизация этого с помощью SCSS будет выглядеть так
.about-us{ margin: 0 auto; color: #fff; &__title { font-weight: bold; & — green { color: #05b993; } } &__text { font-size: 24px; } }
Довольно круто, правда?
Заключение
Действительно, БЭМ дает нашему CSS прочную структуру, которую легче понять. Вы можете не получить его прямо сейчас, но я уверен, что со временем вы получите. Получайте удовольствие от именования с БЭМ.