COLUMN
COLUMN
2022.06.08Web制作
こんにちは、ここです。
CSSを拡張して書きやすさ、見やすさをより高めたスタイルシート「Sass(サス、サース)」。「Syntactically Awesome StyleSheet」の略の通り非常に「文法的に素晴らしいスタイルシート」です。従来のCSSにおける不満点の多くが解消される為、導入しているWebサイト・サービスも少なくありません。
今回はSassの書き方の中でも、「SCSS」における「アンパサンド(&)」の使い方について解説していきます。
SASSについての詳細はこちらをご覧ください。
作業効率・メンテナンス性を高める「Sass」とは?
コンパイル前のscss
.block {
&.foo {
background-color : #fff;
}
&__bar {
background-color: #000;
}
&:hover {
text-decoration: underline;
}
}
コンパイル後のcss
.block.foo {
background-color: #fff;
}
.block__bar {
background-color: #000;
}
.block:hover {
text-decoration: underline;
}
「.block」の後ろに&の後ろの文字列が追記されます。
コンパイル前のscss
.block {
& + & {
margin-top: 1em;
}
&,
&--foo {
margin-top: 1em;
}
}
コンパイル後のcss
.block + .block {
margin-top: 1em;
}
.block, .block--foo {
margin-left: 1em;
}
cssにおける「+」や「,」等も同様に使用することができます
コンパイル前のscss
.block {
$amp: &; // 親要素を変数に定義
&__foo {
color: #333;
#{$amp} & { // 親要素を変数で呼び出し
color: #fff;
}
#{$amp}-bar & { // 親要素を変数+class名変化で呼び出し
color: #000;
}
}
}
コンパイル後のcss
.block__foo {
color: #333;
}
.block .block__foo {
color: #fff;
}
.block-bar .block__foo {
color: #000;
}
親要素のclass名が変化しました。
「$(任意の文字):&;」で変数に定義づけることができます。
以上、アンパサンド(&)を用いたScssの応用でした。
少しでもお役にたてば幸いです。