Доброго времени суток, подскажите начинающему, как правильно задавать margin независимым блокам, согласно методологии БЭМ? Ведь блок не должен отвечать за свое позиционирование, а только за шрифты, бокс-модель и прочее, но не margin..?
Доброго времени суток, подскажите начинающему, как правильно задавать margin независимым блокам, согласно методологии БЭМ? Ведь блок не должен отвечать за свое позиционирование, а только за шрифты, бокс-модель и прочее, но не margin..?
Смиксовать этот блок с элементом его родителя и задавать позиционирование именно этому элементу. Подробнее см.: https://ru.bem.info/method/key-concepts/#Микс https://ru.bem.info/method/solved-problems/#Как-разместить-несколько-сущностей-на-одном-dom-узле-и-избежать-copy-paste
Понял спасибо, сопутствующий вопрос: пользуюсь Sass, как реализовать это лучше всего с помощью подобных препроцессоров, чтобы максимально увеличить читабельность файла стилей? Я сделал так:
1) В итоге задание margin превращается в такое:
output:
2) В моем миксине опционально можно задать и второй параметр, тогда мы зададим "новое имя" для нашего элемента во время миксования:
output:
Таким образом я вижу, что мой блок одновременно является еще и элементом какого-то другого блока, и этот элемент чётко отвечает только за позиционирование. А как Вы делаете? Может есть что-то правильное?)
Я не сторонник программирования на CSS и мне то, что написано в
output
нравится больше, чем вся магия с препроцессорами ;)Рациональное объяснение тут такое: должна быть возможность описать
block
иblock__child-block
в отдельном отchild-block
файле и они в принципе не должны догадываться о существовании друг друга (в том числе и в именах элементов лучше использовать более абстрактные названия и не затачиваться жестко на имя вложенного блока — ведь завтра на его месте может оказаться совершенно другой блок и все должно продолжить работать как раньше).