SASSミックスイン内のコンテンツブロック
ミックスイン内にスタイルのブロックを渡すには、
ディレクティブ @content を使用します。
ここに必要なスタイルが配置されます。
例を見てみましょう:
styles.scss@mixin active {
* div {
@content;
}
}
@include active {
#block {
color: red;
}
}
コンパイル結果:
styles.css* div #block {
color: red;
}
@content ディレクティブを
複数回指定するか、ループ内で使用する場合、
スタイルブロックも同じ回数だけ呼び出されることを
知っておく必要があります。
styles.scss@mixin active {
div {
@content;
}
navbar {
@content;
}
}
@include active {
#block {
color: red;
}
button {
color:green;
}
}
コンパイル後、次の結果が表示されます:
styles.cssdiv #block {
color: red;
}
div button {
color: green;
}
navbar #block {
color: red;
}
navbar button {
color: green;
}
Задание 1
次のコードのコンパイル結果はどうなりますか?
styles.scss@mixin super-link {
a {
@content;
}
}
@include super-link {
color: blue;
text-decoration: underline;
}
Задание 2
次のコードのコンパイル結果はどうなりますか?
styles.scss@mixin super-link {
a {
@content;
}
a .primary-link{
@content;
font-weight: bold;
}
}
@include super-link {
color: blue;
text-decoration: underline;
}
Задание 3
次のミックスインがあるとします:
styles.scss@mixin colors {
...
}
@content ディレクティブを使用して、
#primary に関連するすべてのリンクの
フォントカラーを青に、下線を波線に設定してください。