С недавнего времени я погружаюсь в БЭМ. И чтоб удостовериться в правильном ли я направлении двигаюсь, хочу попросить более опытных в этом деле ребят сделать небольшое ревью.
В качестве примера для верстки я взял одно старое Яндексовое тестовое задание - https://yandex.ru/jobs/vacancies/dev/dev_des/
Моя реализация - https://github.com/koloskof/bem-taxi
Буду благодарен!
Макет разбит на сущности вполне здраво. Но если придираться, то:
link
— сейчас в шаблонах копипастservice__name
по задумке — это не просто ссылка, аlink
+dropdown
со стрелочки (поэтому она не должна быть просто фоном, а отдельным элементом)—
) стоило бы заменить на UTF-8 символыНу и можно было бы доделать поведение: оживитить рейтинг и переключатель Откуда Куда (в процессе станет понятно, что и BEMJSON API рейтинга нужно чуть улучшить, а для переключателя потребуется кнопка, а не только иконка).
Не плохо. Тоже — если придератьс, я бы
mix
писал нижеblock
))) блок тут важнее чем микс. А еще кажется местами слишком много блоков без которых можно было обойстись. Но это надо больше погружаться в задачи)Спасибо! Детали учту. Буду дальше совершенствоваться) Привыкаю к самому подходу/инструментам. Осталось несколько базовых вопросиков:
И был немного озадачен тем как может выглядит bemjson этой конструкции.
Почему-то никто ничего не написал про имя блока "ad".
Да.
Да. Готовый блок
clearfix
есть вbem-core
: https://ru.bem.info/libs/bem-core/v2.8.0/desktop/clearfix/Уточни подробнее, что хочется получить в результате.
@apsavin, отталкивался от того что ad = advertisement (это принципе даже не сокращение, а в ходу даже в речи). Или ты что-то другое имеешь ввиду?
@tadatuta, хотелось бы чтоб в dist сборке отображались мои изображения http://joxi.ru/82Q7P0Ju387Xrd
https://github.com/koloskof/bem-taxi/pull/1
Шикарно! Большое спасибо
@koloskof да, на мой вкус, чем меньше двусмысленности, тем лучше, но это, разумеется, не очень важно.
Если писать явно
advertisement
, всякие резалки рекламы могут целиком выкосить узел (впрочем я и заad
бы не поручился).Всем привет. Сегодня на вебинаре на geekweekconf видел использование микса типа .page .page__home на тэге body, т.е. на одной дом-ноде и блок и элемент одновременно. Почему не используется модификатор? И раз такое дело, можно меня тоже поревьюить?)) Вот - https://github.com/yusk90/surfhouse, это собранный вариант, без исходников. Заранее спасибо!!
@yusk90
Потому что это разные по смыслу вещи — там нет задачи помодифицировать
page
. Причина такого микса в этом конкретном случае в том, что с точки зрения шаблоновpage
— это вся обвязка страницы, включая, доктайп, теги<html>
,<head>
и т.д., аpage__body
— это только<body>
. При этом с точки зрения использования, скажем, в JavaScript, нам удобно иметь классpage
на<body>
.В целом более-менее похоже на правду, но такие штуки мы, конечно, не котируем ;) В плане JS я бы порекомендовал посмотреть в сторону https://github.com/hoho/jquery-bem
Спасибо за ревью. Кстати, спасибо за доклад сегодняшний, очень интересно. А такой случай, опять же из моей верстки: Есть кнопки верхнего слайдера. там они стоят расположены рядом:
и нижнего слайдера (инстаграм):
Они отличаютя только расположением относительно родительского блока, ну и должны иметь уникальные классы для подключения к слайдеру. Как тут лучше намиксовать?
Вроде и так нормально, но если у
prev
иnext
есть что-то общее между верхним и нижнем слайдерами, то можно это общее вынести в отдельный модификатор: