Для чего используется директива @content?
Что такое директива @content ?
@content — это правило SASSAt, используемое для повторного использования блока кода за счет уменьшения повторения одного и того же кода. Он используется как тело в @mixin для включения блока кода, который передается через @include .
Пример 1. Запустите приведенный ниже код с препроцессором SASS. Он заменяет @content внутри @mixin на «белый» цвет, переданный с помощью @include .
CSS
@mixin example { @content;}body{ @include example{ color : white }} |
Выход :
body {
color: white;
}Использование @content:
Обычно используется для замены кода. Вы можете использовать его с другими At-правилами или даже во вложенных селекторах. Вы ознакомитесь с некоторыми вариантами использования @content.
Пример 1. В этом примере @content используется для замены блока кода для медиа-запросов. Так что это поможет нам передавать разные атрибуты для разных размеров экрана. Мы упорядочиваем атрибуты устройства с маленьким экраном. Медиа-запрос будет применен к экрану с минимальной шириной 600 пикселей. Точно так же мы можем передать другой блок кода для других размеров экрана.
CSS
@mixin sm($val) { @media screen and (min-width: $val) { @content; }} @include sm(600px) { body { color: white; }} |
Выход :
@media screen and (min-width: 600px) {
body {
color: white;
}
}Пример 2. В этом примере @content используется для назначения тела @keyframes, где
- $name заменяется изменением размера
- @content заменяется на from{. . .} к {. . .}
Это помогает нам определять разные анимации с помощью одного синтаксического кода @mixin.
CSS
@mixin keyframes($name) { @keyframes #{$name} { @content; }} @include keyframes(resize) { from { width : 0%; } to { width : 100%; }} |
Выход :
@keyframes resize {
from {
width: 0%;
}
to {
width: 100%;
}
}Пример 3: В этом примере @content используется для создания кнопок с разными цветами текста. Это помогает нам определить разные кнопки для разных целей.
CSS
@mixin button{ @content;}.alert { @include button { color: red; }}.confirm { @include button { color: blue; } } |
Выход:
.alert {
color : red;
}
.confirm {
color : blue;
}Пример 4: В этом примере @content используется во вложенных селекторах, где . child-attr передается внутри класса .parent .
CSS
@mixin child { @content}.parent { @include child { .child-attr { color: red; } } background-color: green;} |
Выход :
.parent {
background-color: green;
}
.parent .child-attr {
color: red;
}