Pull to refresh

Comments 8

За позиционирование отвечает родитель, а не сам блок. Это написано даже на сайте bem.info. Смысл в том, что блок может находиться в разных местах, он понятия не имеет, где именно, и отвечает только за то, что происходит внутри него. А вот родитель уже позиционирует свой элемент, который по совместительству является блоком.
Сейчас у вас переиспользование блоков стремится к нулю. А смысл тогда разбивать всё на блоки и элементы? Можно и просто обозвать без всяких БЭМов. Всё так же будет хорошо жить.
За позиционирование отвечает родитель, а не сам блок.

Еще за позиционирование может отвечать модификатор или микс, но это не обязательно. Мой пример не идет в разрез с методологией, но выглядит достаточно просто и думаю понятно.
Мой пример не идет в разрез с методологией, но выглядит достаточно просто и думаю понятно.

Ну как сказать:
Внешняя геометрия и позиционирование
В CSS по БЭМ стили, отвечающие за внешнюю геометрию и позиционирование, задаются через родительский блок.

Модификатор не отвечает за позиционирование, а микс может только потому, что мы можем смиксовать элемент. А что такое элемент? Это то, за что отвечает родительский блок, а не текущий.

И что будет, если я захочу использовать .sticker вне .stickers? Всё сломается. Потому что расположение определяет контекст родителя.
В целом как раз таки нет, вы можете использовать стики точечно там где захотите, единственное, что да в таком случае гораздо лучше будет использовать позиционирование .sticker либо как микс либо как модификатор, с этим полностью согласен.

.stickers так же является блоком и содержит в себе элементы и в целом конструкция может выглядеть так:

stickers__sticker sticker .sticker_position_0

Но я специально упустил это за ненадобностью и для простоты

Для простоты можно и без бэма обойтись. Повторюсь, за позиционирование отвечает родитель. Это написано на сайте методологии. У этого есть основания. Т.е. позиционироваться может только элемент и соответственно его модификаторы, а не модификаторы блока.

Обойтись можно и вложенностью, но нужно с чего-то начинать, я хочу привлечь внимание тех кто работает с opencart и такие детали их только отпугнут, но я уже говорил, что с вами согласен по поводу позиционирования и добавил примечание в статью
Opencart по умолчанию построен на вложенных селекторах, как шаблон, так и админка.


И это самый маленький и тоненький из минусов OpenCart )

По теме: я бы вложил .sticker как элемент блока .stickers, все-таки, они как таковые без него не существуют (вам обязательно нужен контейнер с relative). И более точно дал бы название, например product-stickers, потому что считаю что просто stickers — слишком абстрактно)
Sign up to leave a comment.

Articles