Comments 8
За позиционирование отвечает родитель, а не сам блок. Это написано даже на сайте bem.info. Смысл в том, что блок может находиться в разных местах, он понятия не имеет, где именно, и отвечает только за то, что происходит внутри него. А вот родитель уже позиционирует свой элемент, который по совместительству является блоком.
Сейчас у вас переиспользование блоков стремится к нулю. А смысл тогда разбивать всё на блоки и элементы? Можно и просто обозвать без всяких БЭМов. Всё так же будет хорошо жить.
Сейчас у вас переиспользование блоков стремится к нулю. А смысл тогда разбивать всё на блоки и элементы? Можно и просто обозвать без всяких БЭМов. Всё так же будет хорошо жить.
За позиционирование отвечает родитель, а не сам блок.
Еще за позиционирование может отвечать модификатор или микс, но это не обязательно. Мой пример не идет в разрез с методологией, но выглядит достаточно просто и думаю понятно.
Мой пример не идет в разрез с методологией, но выглядит достаточно просто и думаю понятно.
Ну как сказать:
Внешняя геометрия и позиционирование
В CSS по БЭМ стили, отвечающие за внешнюю геометрию и позиционирование, задаются через родительский блок.
Модификатор не отвечает за позиционирование, а микс может только потому, что мы можем смиксовать элемент. А что такое элемент? Это то, за что отвечает родительский блок, а не текущий.
И что будет, если я захочу использовать .sticker вне .stickers? Всё сломается. Потому что расположение определяет контекст родителя.
В целом как раз таки нет, вы можете использовать стики точечно там где захотите, единственное, что да в таком случае гораздо лучше будет использовать позиционирование .sticker либо как микс либо как модификатор, с этим полностью согласен.
.stickers так же является блоком и содержит в себе элементы и в целом конструкция может выглядеть так:
Но я специально упустил это за ненадобностью и для простоты
.stickers так же является блоком и содержит в себе элементы и в целом конструкция может выглядеть так:
stickers__sticker sticker .sticker_position_0
Но я специально упустил это за ненадобностью и для простоты
Для простоты можно и без бэма обойтись. Повторюсь, за позиционирование отвечает родитель. Это написано на сайте методологии. У этого есть основания. Т.е. позиционироваться может только элемент и соответственно его модификаторы, а не модификаторы блока.
Opencart по умолчанию построен на вложенных селекторах, как шаблон, так и админка.
И это самый маленький и тоненький из минусов OpenCart )
По теме: я бы вложил .sticker как элемент блока .stickers, все-таки, они как таковые без него не существуют (вам обязательно нужен контейнер с relative). И более точно дал бы название, например product-stickers, потому что считаю что просто stickers — слишком абстрактно)
я бы вложил .sticker как элемент блока .stickers
Согласен, тут я сделал небольшое уточнениепо этому поводу habr.com/ru/post/457016/#comment_20310488
Sign up to leave a comment.
Методология БЭМ на примере стикеров в opencart