Closed IgorLesnevskiy closed 8 years ago
Здравствуйте!
Я давно работал с MCSS, сейчас работаю преимущественно с модулями, где каскада в том виде, что вы описали - нету. Могу предложить несколько вариантов, но не все они впишутся в парадигму методологии.
b-widget_type-filter
b-widget__line { ... }
b-widget_type-filter
b-widget_type-filter__special-line { ... }
b-widget_type-filter
b-widget__line:not(b-widget_type-filter__special-line)
b-widget b-widget_type-filter
b-widget__line
b-filter-special-block
b-widget b-widget_type-filter
b-widget__line
u-mt-s
Есть наверное еще пара десятков вариантов, но лучше стремиться к уходу от каскада, дальше будет только сложнее. Надеюсь, чем-то помог. 👍
добрый вечер!
в принципе, вариант с :not кажется приемлемым, хоть и отдает костылем. но, в целом, это лучше, чем вешать important. Спасибо!
Спасибо, Женя, что ответил.
Помимо импортант, есть еще один трюк с добавлением :root .selector {}
, где этих самых :root может быть несколько - :root:root .selector {}
. Выглядит не так что бы очень, но повышает специфичность и не так плох как !important
.
Добрый день. Насколько я понимаю, проект не развивается, но, тем ни менее, я продолжаю юзать MCSS) Вопрос по уровням модификации. Предположим, что у меня есть такой блочок:
Т.е. по сути это небольшая панелька с заголовком и небольшими секциями. Предположим, что я хочу ее расширить, и дописываю к ней модификатор
При этом через этот модификатор я увеличиваю margin в &__line. Также в этой модификации есть особая линия, у которой особые отступы. Она есть только к модифицированной панельки. Т.е. мне нужно дописать модификатор к линии, который по идеи должен работать только, когда есть модификатор виджета. Каким образом мне его оформить? Сначала я сделал так:
Однако тут начинаются проблемы с каскадом, т.к. родительский модифицированный селектор каскадом перекрывает одиночный селектор. Надеюсь смог объяснить. Как мне поступать в таких случаях?