Sassで "バリエーションクラス"を作成する方法は?例:バリエーション/テーマクラス用のSASSのバブルアップルール
.bookshelf {
color: brown;
height: 100px;
.panel {
trimmed: no;
height: 10px;
}
.door {
height: 100px;
.knob {
shape: circle;
height: 10px;
}
}
}
.bookshelf.small
をバリエーションにしたいとします。ミックスインやデータを「バブルアップ」するものを使って、主な要素の中にバリエーションコードを書く方法はありますか?
.bookshelf {
color: brown;
height: 100px;
@include small-version {
height: 50px;
}
.panel {
trimmed: no;
height: 10px;
@include small-version {
height: 5px;
}
}
.door {
height: 100px;
@include small-version {
height: 50px;
}
.knob {
shape: circle;
height: 10px;
@include small-version {
height: 5px;
}
}
}
}
そしてミックスインの出力は
.bookshelf.small {
height: 50px;
.panel {
height: 5px;
}
.door {
height: 50px;
.knob {
height: 5px;
}
}
いくつかのものとなるよう、@アット・ルート機能と@content関数として、有望に見えたが、どちらも、このシナリオのために働くだろう。私が@media設定を書いたら、彼らはバブルアップするだろう。しかし、私はこれをメディアクエリに結びつけたくないので、これを特定のクラスに結びつけたい(.bookshelfにもクラスが小さい場合は、これらのルールを適用する)。
一つの方法は、「変化」クラス名の後に使うとするだろうが、それらをCONCATする方法を見つけることができた場合にのみ。ですから、テーマ固有のルールが必要なところで '.small&{/ ** /}'と書くだけです。しかし、それらを連結する方法が利用できない場合、.small.bookshelfではなく.small .bookshelfが生成されます。 – Ayub