How to use parent selector and with class
July 01, 2018
The problem
You have child div (.child) which can be in both "parents" (.parent-a and .parent-b).
You want to define a rule to each case. Well, this is not a problem - & selector, right?
Let's remember:
Things are getting be interesting when you want to create a rule for parent (.parent-a) which have another class (.-make-child-orange) and will affect the child (.child).
The structure looks like this:
The closest selector I could think of is .-make-child-orange & but the problem is that it's become to a grandfather selector: .-make-child-orange .parent-a .child
The solution
@at-root and #{} (Interpolation) to the rescue you!
docsThe @at-root directive causes one or more rules to be emitted at the root of the document, rather than being nested beneath their parent selectors. It can either be used with a single inline selector
docsYou can also use SassScript variables in selectors and property names using #{} interpolation syntax
So, combine those options togather and we will use the magic selector: @at-root .-make-child-orange#{&} so the #{&} will be replaced by
the selector which aggregated so far: