У меня есть блоки
.square-box
.shadow
.flip-box
.product-card
Нужно сделать карточку продукта квадратной и переворачивающийся, вышел такой haml
.product-card <-- начало блока
.square-box
.square-box__content
.flip-box
.flip-box__wrapper
.flip-box__front
.shadow.shadow--1
.product-card__title ... <-- И только здесь начались его элементы
.product-card__image ...
.flip-box__back
.shadow.shadow--1 Back content
Получается, что product-card
оборачивает пару блоков, которые оборачивают элементы product-card
... вписывается ли это в методологию?
На текущий момент есть идея вынести стороны карточки продукта в разные блоки product-front-side
и product-back-side
, но все равно интересно получить ответ на вопрос.
Смешивать вполне корректно. Кроме того, расскажу про такое понятие как микс — это когда на одной DOM-ноде оказывается несколько блоков (или блок + элемент другого блока, элемент блока А + элемент блока Б или другие комбинации). Например, это позволяет выражать те особенности, которые нужны только для
square-box
внутриproduct-card
не в виде добавления им прямо в кодsquare-box
, а в качестве элементаproduct-card__box
, примешанного кsquare-box
. Зачастую за раскладку может отвечать некая сетка (блокgrid
илиlayout
), внутри которой будут лежать самые разные блоки. Тогда получится, что некийdiv
одновременно будет иlayout__cell
и, скажем, блокомtitle
: