条件を使用して CSS グループ セレクターを作成する必要がよくあり、より効率的なコーディング パターンを探しています。
たとえば、、、および要素をリセット/正規化するかどうかを切り替える構成ファイルがaudio
ありcanvas
ますvideo
。
$normalize-html5-audio-element: false;
$normalize-html5-canvas-element: true;
$normalize-html5-video-element: true;
次に、_normalize.scss
パーシャルでは、true に設定された要素のみを含むグループ セレクターが必要です。
私はそれを非常に簡単な方法で解決しましたが、扱いにくく、簡単に拡張することはできません。誰かがより良い方法を提案できますか?
%normalize-html5-media {
display: inline-block;
@if $legacy-support-for-ie6 or $legacy-support-for-ie7 {
*display: inline;
*zoom: 1;
}
}
$html5-media-selector: null;
@if $normalize-html5-audio-element {
$html5-media-selector: audio;
}
@if $normalize-html5-canvas-element {
@if $html5-media-selector {
$html5-media-selector: #{$html5-media-selector}, canvas;
} @else {
$html5-media-selector: canvas;
}
}
@if $normalize-html5-video-element {
@if $html5-media-selector {
$html5-media-selector: #{$html5-media-selector}, video;
} @else {
$html5-media-selector: video;
}
}
#{$html5-media-selector} {
@extend %normalize-html5-media;
}