あなたは望ましい結果を得るために、回避策としてこのmixin
を使用することができます。
@mixin child-attribute($child) {
$string: inspect(&);
$original: str-slice($string, 3, -4);
@at-root #{ selector-replace(&, &, "[#{$original}#{$child}]") } {
@content;
}
}
コードは単純に以下の
- $文字列変数が
inspect
機能を使用して文字列に親セレクターを回すために責任があるん
- $元変数は、取得するための責任がありますテキスト
$string
変数iの内容。
- 関数は、次の方法で使用
可変$original
変数の連結及びchild
と親セレクタを置き換えるセレクタ置き換える'([data-parent])'
からE値'data-parent'
[data-parent] {
@include child-attribute('-child') {
color: green;
}
}
ザCSS出力
[data-parent-child] {
color: green;
}
はあなたが達成したい内容に応じて、それは次のCSS
[grandparent-parent] {
color: white;
}
[grandparent-parent-child] {
color: blue;
}
希望を生成し、この
[grandparent] {
@include child-attribute('-parent') {
color: white;
@include child-attribute('-child') {
color: blue;
}
}
}
のようにも使用することができ、これは、これは `ので、何の解決策ではありませんあなた
役立ちます@ includeデータ( 'lol')は親セレクタではありません。これは階層コードを作成する目的をすべて失います。 –