# 1. 17. 15. Модификаторы блоков и элементов

В этой группе типовых интерфейсных шаблонов собраны примеры использования модификации блоков и их элементов.

#### Случай 1 <a href="#sluchai-1" id="sluchai-1"></a>

Блок может измениться. Есть два или больше вариантов отображения этого блока.

Примерная разметка:

```
<div class="block">
  <div class="block__element-1"></div>
  <div class="block__element-2"></div>
...
</div>
...
<div class="block block--modifier">
  <div class="block__element-1"></div>
  <div class="block__element-2"></div>
...
</div>
```

<figure><img src="https://up.htmlacademy.ru/assets/intensives/adaptive/29/book/html/bem/common-cases-modifiers/bem_method_8.svg" alt="Схема для случая 1"><figcaption><p>Схема для случая 1</p></figcaption></figure>

Обычная карточка и карточка с любым шевроном (*Новинка*, *Акция*, *Скидка* и другие).

<figure><img src="https://up.htmlacademy.ru/assets/intensives/adaptive/29/book/html/bem/common-cases-modifiers/bem_add_12_2@1x.png" alt="Пример для случая 1"><figcaption><p>Пример для случая 1</p></figcaption></figure>

Распределение по блокам, элементам и модификаторам:

<figure><img src="https://up.htmlacademy.ru/assets/intensives/adaptive/29/book/html/bem/common-cases-modifiers/bem_add_12_1@1x.png" alt="Блоки, элементы и модификаторы для карточки товара"><figcaption><p>Блоки, элементы и модификаторы для карточки товара</p></figcaption></figure>

Разметка:

```
<section class="product-preview">
  <h3 class="product-preview__title">
    <a class="product-preview__link" href="#">Клубничный торт</a>
  </h3>
  <img class="product-preview__img" src="/adaptive/29/book/html/bem/common-cases-modifiers/img/photo-1.jpg" width="224" height="160" alt="">
  <p class="product-preview__description">Бисквит, клубника, крем, желатин, сахар</p>
  <p class="product-preview__price">120 ₽</p>
  <button class="product-preview__button button" type="button">В корзину</button>
</section>
<section class="product-preview product-preview--new">
  <h3 class="product-preview__title">
    <a class="product-preview__link" href="#">Брауни</a>
  </h3>
  <img class="product-preview__img" src="/adaptive/29/book/html/bem/common-cases-modifiers/img/photo-2.jpg" width="224" height="160" alt="">
  <p class="product-preview__description">Какао, фундук, карамель, шоколадная стружка</p>
  <p class="product-preview__price">135 ₽</p>
  <button class="product-preview__button button" type="button">В корзину</button>
</section>
```

#### Случай 2 <a href="#sluchai-2" id="sluchai-2"></a>

Некоторые элементы внутри БЭМ-блока могут изменяться и их внешний вид отличается от базового состояния.

Примерная разметка:

```
<div class="block">
  <div class="block__element"></div>
  <div class="block__element block__element--modifier"></div>
...
</div>
```

<figure><img src="https://up.htmlacademy.ru/assets/intensives/adaptive/29/book/html/bem/common-cases-modifiers/bem_method_7.svg" alt="Схема для случая 2"><figcaption><p>Схема для случая 2</p></figcaption></figure>

Под эту схему подходят фотографии из каталога, которым поставили лайк.

<figure><img src="https://up.htmlacademy.ru/assets/intensives/adaptive/29/book/html/bem/common-cases-modifiers/bem_add_11_2@1x.png" alt="Пример для случая 2"><figcaption><p>Пример для случая 2</p></figcaption></figure>

Блоки, элементы и модификаторы:

<figure><img src="https://up.htmlacademy.ru/assets/intensives/adaptive/29/book/html/bem/common-cases-modifiers/bem_add_11_1@1x.png" alt="Блоки, элементы и модификаторы для каталога с фотографиями"><figcaption><p>Блоки, элементы и модификаторы для каталога с фотографиями</p></figcaption></figure>

Разметка интерфейсного элемента:

```
<section class="card">
  <img class="card__photo" src="img/photo-1.jpg" width="300" height="300" alt="">
  <button class="card__favorite" type="button">46</button>
  <a class="card__comment" href="#">8</a>
  <a class="card__views" href="#">192</a>
</section>
<section class="card">
  <img class="card__photo" src="/adaptive/29/book/html/bem/common-cases-modifiers/img/photo-2.jpg" width="300" height="300" alt="">
  <button class="card__favorite card__favorite--checked" type="button">135</button>
  <a class="card__comment" href="#">112</a>
  <a class="card__views" href="#">82</a>
</section>
```

#### Случай 3 <a href="#sluchai-3" id="sluchai-3"></a>

Бывают случаи, когда оба описанные выше шаблона (модификация блока и модификация элемента) используются на одном БЭМ-блоке одновременно.

Примерная разметка:

```
<div class="block">
  <div class="block__element"></div>
  <div class="block__element block__element--modifier"></div>
...
</div>
...
<div class="block block--modifier">
  <div class="block__element-1"></div>
  <div class="block__element-2"></div>
...
</div>
```

<figure><img src="https://up.htmlacademy.ru/assets/intensives/adaptive/29/book/html/bem/common-cases-modifiers/bem_method_9.svg" alt="Схема для случая 3"><figcaption><p>Схема для случая 3</p></figcaption></figure>

Допустим, это карточка товара, который закончился. Во-первых, в таких карточках кнопка купить/заказать становится не активной, во-вторых, сама карточка может отличаться по внешнему виду.

<figure><img src="https://up.htmlacademy.ru/assets/intensives/adaptive/29/book/html/bem/common-cases-modifiers/bem_add_13_2@1x.png" alt="Пример для случая 3"><figcaption><p>Пример для случая 3</p></figcaption></figure>

Блоки, элементы и модификаторы:

<figure><img src="https://up.htmlacademy.ru/assets/intensives/adaptive/29/book/html/bem/common-cases-modifiers/bem_add_13_1@1x.png" alt="Блоки, элементы и модификаторы для карточки товара"><figcaption><p>Блоки, элементы и модификаторы для карточки товара</p></figcaption></figure>

Разметка карточки:

```
<section class="card">
  <img class="card__photo" src="/adaptive/29/book/html/bem/common-cases-modifiers/img/photo-1.jpg" width="300" height="300" alt="">
  <p class="card__description">Журнальный стол из массива дуба</p>
  <button class="card__button" type="button">Заказать</button>
</section>
<section class="card card--out-of-stock">
  <img class="card__photo" src="/adaptive/29/book/html/bem/common-cases-modifiers/img/photo-2.jpg" width="300" height="300" alt="">
  <p class="card__description">Универсальная подставка из липы</p>
  <button class="card__button card__button--disabled" type="button">Нет в наличии</button>
</section>
```

#### Случай 4 <a href="#sluchai-4" id="sluchai-4"></a>

Вложенный блок отображается не в своём, обычном, базовом состоянии, а немного видоизменённым.

Примерная разметка:

```
<div class="block">
  <div class="block__element-1"></div>
  <div class="block__element-2 block-2 block-2--modifier">
    <div class="block-2__element"></div>
  </div>
...
</div>
```

<figure><img src="https://up.htmlacademy.ru/assets/intensives/adaptive/29/book/html/bem/common-cases-modifiers/bem_method_16.svg" alt="Схема для случая 4"><figcaption><p>Схема для случая 4</p></figcaption></figure>

К примеру, в блоке контакты ссылки на страницы в социальных сетях различаются по цвету.

<figure><img src="https://up.htmlacademy.ru/assets/intensives/adaptive/29/book/html/bem/common-cases-modifiers/bem_add_10_2.svg" alt="Пример для случая 4"><figcaption><p>Пример для случая 4</p></figcaption></figure>

Блоки, элементы и модификаторы для интерфейсного элемента:

<figure><img src="https://up.htmlacademy.ru/assets/intensives/adaptive/29/book/html/bem/common-cases-modifiers/bem_add_10_1.svg" alt="Блоки, элементы и модификаторы для ссылок на соцсети"><figcaption><p>Блоки, элементы и модификаторы для ссылок на соцсети</p></figcaption></figure>

Разметка для элементов:

```
<div class="social">
  <p class="social__caption">Мы в соцсетях:</p>
  <ul class="social__list">
    <li class="social__item">
      <a class="social__link social-link social-link--theme-youtube" href="#">
        <svg class="social-link__icon"></svg>
        <span class="social-link__title">YouTube</span>
      </a>
    </li>
    <li class="social__item">
      <a class="social__link social-link social-link--theme-tiktok" href="#">
        <svg class="social-link__icon"></svg>
        <span class="social-link__title">TikTok</span>
      </a>
    </li>
    ...
  </ul>
</div>
```

#### Случай 5 <a href="#sluchai-5" id="sluchai-5"></a>

БЭМ-блок может менять свой внешний вид и при этом быть ещё и другим БЭМ-блоком с модификацией.

Примерная разметка:

```
<div class="block"></div>
...
<div class="block block--modifier block-2 block-2--modifier">
  <div class="block__element"></div>
...
</div>
```

<figure><img src="https://up.htmlacademy.ru/assets/intensives/adaptive/29/book/html/bem/common-cases-modifiers/bem_method_17.svg" alt="Схема для случая 5"><figcaption><p>Схема для случая 5</p></figcaption></figure>

Под эту схему подходят всплывающие окна, для которых модификацией может служить вариант позиционирования (вверху экрана, внизу экрана).К примеру, нужно согласиться использовать *Cookie* на сайте, в то же время периодически появляется окно с советом дня.

<figure><img src="https://up.htmlacademy.ru/assets/intensives/adaptive/29/book/html/bem/common-cases-modifiers/bem_add_14_2@1x.png" alt="Пример для случая 5"><figcaption><p>Пример для случая 5</p></figcaption></figure>

Распределение по БЭМ-сущностям:

<figure><img src="https://up.htmlacademy.ru/assets/intensives/adaptive/29/book/html/bem/common-cases-modifiers/bem_add_14_1@1x.png" alt="БЭМ-сущности для всплывающих окон на сайте"><figcaption><p>БЭМ-сущности для всплывающих окон на сайте</p></figcaption></figure>

Разметка:

```
<div class="popup"></div>
...
<div class="popup popup--top notification notification--theme-light">
  <p class="notification__message">Наш сайт использует cookies, <a href="#">подробнее по ссылке</a>.</p>
  ...
</div>
...
<div class="popup popup--right notification notification--theme-dark">
  <p class="notification__message"><b>Совет дня:</b> для поиска нужных изображений воспользуйтесь строкой поиска.</p>
  ...
</div>
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://breadcrumbs.gitbook.io/base-1/1.-17.-razmetka-po-bem/1.-17.-15.-modifikatory-blokov-i-elementov.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
