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 {...}
это лучший способ пойти.