2018-09-01 22:35:20 +02:00
|
|
|
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
|
2019-09-03 01:32:14 +02:00
|
|
|
uses the [`selector.unify()` function][] to combine `&` with a user's selector.
|
2018-09-01 22:35:20 +02:00
|
|
|
|
2019-09-03 01:32:14 +02:00
|
|
|
[`selector.unify()` function]: ../modules/selector#unify
|
2018-09-01 22:35:20 +02:00
|
|
|
|
|
|
|
<% example do %>
|
2019-09-03 01:32:14 +02:00
|
|
|
@use "sass:selector";
|
|
|
|
|
2018-10-23 22:42:40 +02:00
|
|
|
@mixin unify-parent($child) {
|
2019-09-03 01:32:14 +02:00
|
|
|
@at-root #{selector.unify(&, $child)} {
|
2018-10-23 22:42:40 +02:00
|
|
|
@content;
|
|
|
|
}
|
2018-09-01 22:35:20 +02:00
|
|
|
}
|
|
|
|
|
2018-10-23 22:42:40 +02:00
|
|
|
.wrapper .field {
|
|
|
|
@include unify-parent("input") {
|
|
|
|
/* ... */
|
|
|
|
}
|
|
|
|
@include unify-parent("select") {
|
|
|
|
/* ... */
|
|
|
|
}
|
2018-09-01 22:35:20 +02:00
|
|
|
}
|
2018-10-23 22:42:40 +02:00
|
|
|
===
|
2019-09-03 01:32:14 +02:00
|
|
|
@use "sass:selector";
|
|
|
|
|
2018-10-23 22:42:40 +02:00
|
|
|
@mixin unify-parent($child)
|
2019-09-03 01:32:14 +02:00
|
|
|
@at-root #{selector.unify(&, $child)}
|
2018-10-23 22:42:40 +02:00
|
|
|
@content
|
2018-09-01 22:35:20 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
2018-10-23 22:42:40 +02:00
|
|
|
.wrapper .field
|
|
|
|
@include unify-parent("input")
|
|
|
|
/* ...
|
2018-09-01 22:35:20 +02:00
|
|
|
|
2018-10-23 22:42:40 +02:00
|
|
|
@include unify-parent("select")
|
|
|
|
/* ...
|
2019-09-03 01:32:14 +02:00
|
|
|
===
|
|
|
|
.wrapper input.field {
|
|
|
|
/* ... */
|
|
|
|
}
|
|
|
|
|
|
|
|
.wrapper select.field {
|
|
|
|
/* ... */
|
|
|
|
}
|
2018-09-01 22:35:20 +02:00
|
|
|
<% end %>
|