sass-site/old_source/code-snippets/_example-advanced-nesting.html.md.erb
2023-01-06 17:37:45 -05:00

48 lines
925 B
Plaintext

For example, suppose you want to write a selector that matches the outer
selector *and* an element selector. You could write a mixin like this one that
uses the [`selector.unify()` function][] to combine `&` with a user's selector.
[`selector.unify()` function]: ../modules/selector#unify
<% example do %>
@use "sass:selector";
@mixin unify-parent($child) {
@at-root #{selector.unify(&, $child)} {
@content;
}
}
.wrapper .field {
@include unify-parent("input") {
/* ... */
}
@include unify-parent("select") {
/* ... */
}
}
===
@use "sass:selector"
@mixin unify-parent($child)
@at-root #{selector.unify(&, $child)}
@content
.wrapper .field
@include unify-parent("input")
/* ... */
@include unify-parent("select")
/* ... */
===
.wrapper input.field {
/* ... */
}
.wrapper select.field {
/* ... */
}
<% end %>