プレースホルダーセレクタでクリアフィックスを継承
こんにちは、ゼノフィ渡部です。
Sassのプレースホルダーセレクタでクリアフィックスを継承する方法をご紹介いたします。
通常の「@extend」の「.(ドット)」では使用していない状態でもセレクタを出力してしまいます。「%」のプレースホルダーセレクタは、そのセレクタ自体(ここでは「clearfix」)はCSSに出力されないので、使用していない場合、「clearfix」セレクタとそのプロパティは出力されません。ただし、プレースホルダーセレクタはSassのバージョンが3.2以上でないと使用できないとされています。
1 2 3 4 5 6 7 8 9 10 11 12 | %clearfix { &:after { overflow: hidden; content: ""; display: block; clear: both; } } |
適用したい要素に「@extend %clearfix;」と記述します。
1 2 3 4 5 6 7 8 | // 子要素をフロートしている場合、「@extend %clearfix;」を要素の親に記述。 dl.clear { @extend %clearfix; } ul.clear { @extend %clearfix; } |
CSSに出力される結果は下記のようになります。
1 2 3 4 5 6 | dl.clear:after, ul.clear:after { overflow: hidden; content: ""; display: block; clear: both; } |
Sass
1 2 3 4 5 6 7 8 | // 子要素をフロートしている場合、「@extend %clearfix;」を要素の親に記述。 dl.clear { @extend %clearfix; } ul.clear { @extend %clearfix; } |
CSS
1 2 3 4 5 6 | dl.clear:after, ul.clear:after { overflow: hidden; content: ""; display: block; clear: both; } |
