BEM. Блок с именами элементов модификатора

У меня есть клиентская сущность. Есть два типа клиентов: врач и аптека. Оба имеют поля "имя", "адрес", "телефон", "электронная почта". Но у врача есть поля "медицинская специальность" и "больница". Врач и аптека почти одинаковы по стилю (за исключением роста и специальных областей доктора).

У меня есть блок "клиент" (с использованием оригинальной записи БЭМ).

.client {
    &_type_doctor {
        height: 280px;
    }
    &_type_pharmacy {
        height: 210px;
    }
    &__name {
        ...
    }
    &__address {
        ...
    }
    ...
}

И мой вопрос, как я должен назвать специальные поля доктора?

.client__medical-specialty {...}
.client__hospital {...}

Или же

.client_type_doctor__medical-specialty {...}
.client_type_doctor__hospital {...}

Или, кроме того, должен быть блок "доктор", и я должен смешивать клиента с доктором, когда клиент является доктором?

.client {
    &__name {...}
    &__address {...}
    ...
}

.doctor {
    height: 280px;

    &__medical-specialty {...}
    &__hospital {...}
}

1 ответ

Решение

Элементы всегда имеют префикс имени самого блока (а не блока с модификатором). Так

.client__medical-specialty {...}
.client__hospital {...}

это лучший способ пойти.

Другие вопросы по тегам