Bloky obsahu v mixinech v SASS
Pro předání bloku stylů uvnitř
mixinu používáme direktivu @content,
na jejíž místo budou vloženy požadované styly.
Podívejme se na příklad:
styles.scss@mixin active {
* div {
@content;
}
}
@include active {
#block {
color: red;
}
}
Výsledek kompilace:
styles.css* div #block {
color: red;
}
Je důležité vědět, že pokud
zadáme direktivu @content
více než jednou nebo uvnitř cyklu,
blok stylů bude volán stejně krát.
styles.scss@mixin active {
div {
@content;
}
navbar {
@content;
}
}
@include active {
#block {
color: red;
}
button {
color:green;
}
}
Po kompilaci uvidíme:
styles.cssdiv #block {
color: red;
}
div button {
color: green;
}
navbar #block {
color: red;
}
navbar button {
color: green;
}
Задание 1
Vysvětlete, jaký bude výsledek kompilace následujícího kódu:
styles.scss@mixin super-link {
a {
@content;
}
}
@include super-link {
color: blue;
text-decoration: underline;
}
Задание 2
Vysvětlete, jaký bude výsledek kompilace následujícího kódu:
styles.scss@mixin super-link {
a {
@content;
}
a .primary-link{
@content;
font-weight: bold;
}
}
@include super-link {
color: blue;
text-decoration: underline;
}
Задание 3
Předpokládejme, že máte následující mixin:
styles.scss@mixin colors {
...
}
Pomocí direktivy @content
nastavte všem odkazům patřícím
k #primary modrou barvu písma
a vlnkované podtržení.