Доброго дня.
Есть один и тот же блок, который необходимо стилизовать немножко иначе в зависимости от того, в каком месте он расположен - в сайдбаре или посреди контента. Как правильней сделать? Путем создания модификатора под каждый из вариантов (.block_type_sidebar и т.п.), или все-таки сделать стиль блока зависимым от другого блока (.selector .block)? В руководстве написано, что второй вариант возможен, но не рекомендуется, однако первый видится мне избыточным.
Это может означать очень разное, возможные варианты:
положение — определяем во внешнем окружении т.е. сделать стиль блока зависимым от другого блока;
геометрия, цвет и размеры — должно определятся в самом блоке, вариативность реализуется модификатором, но в зависимости от масштаба вариативности и здравого смысла тоже может быть определятся в другого блоке (в случае применения методологии такую специфичность легко отслеживать), если вариативность уникальная, сделать стиль блока зависимым от другого блока;
типографика — сделать стиль блока зависимым от другого блока.
В общем если вариативность ограничена и требуется в разных местах уместнее реализовывать модификатором.
Применение миксов уместно на случай, когда надо совмещать реализации и их вариации.
Спасибо за подробный ответ! У меня как раз типографика и цвет - есть стандартный размер формы поиска, а есть вариант в сайдбаре, который отличается размерами текста, цветом и наличием рамки.
Ссылаясь на методологию блок не может обладать внешними маргинами или рамками. (с)
Вы имеете ввиду что нужно в блоке задавать подобные свойства, а модификатором перезаписывать их?
Это ведь не очень хорошо.
Блок должен оставаться не зависимым, таки что бы можно было его пометить в любуя часть разметки, поэтому его внешние поля надо звать в контексте его нахождения, например: