Основы SASS
В этой статье объясняются основы SASS.
Мы поэтапно объясним основные функции SASS и покажем, как их использовать на практических примерах кода.
YouTube Video
Основы SASS
SASS (Syntactically Awesome Stylesheets) — это язык стилей, расширяющий возможности CSS. Используя SASS, вы можете воспользоваться расширенными возможностями, недоступными в CSS, такими как переменные, вложенность, миксины и наследование. Это значительно упрощает управление и повторное использование таблиц стилей.
Что такое SASS?
SASS — это язык, который упрощает написание CSS и позволяет создавать более гибкие и мощные стили. SASS также предлагает синтаксис SCSS (Sassy CSS), похожий на стандартный синтаксис CSS. Вот пример:.
Пример SCSS
1$base-font: Arial, sans-serif;
2$bg-color: #f4f4f4;
3
4body {
5 font-family: $base-font;
6 background-color: $bg-color;
7}
Пример CSS
1body {
2 font-family: Arial, sans-serif;
3 background-color: #f4f4f4;
4}
Настройка SASS
Как установить
Чтобы использовать SASS, сначала установите Node.js, а затем установите SASS с помощью следующей команды:.
1npm install -g sass
Как компилировать
Чтобы скомпилировать файлы SASS (.scss
или .sass
) в CSS, используйте следующую команду:.
1sass input.scss output.css
Вы также можете использовать опцию watch
для отслеживания изменений файлов и их компиляции в реальном времени.
Переменные
SASS позволяет использовать переменные для повторного использования значений, таких как цвета и размеры шрифтов.
Пример кода
1$primary-color: #3498db;
2$font-stack: 'Roboto', sans-serif;
3
4body {
5 color: $primary-color;
6 font-family: $font-stack;
7}
- Этот код использует переменные SASS для задания цветов и шрифтов, а также повторно использует их внутри селектора
body
для повышения согласованности и удобства сопровождения.
Результат компиляции
1body {
2 color: #3498db;
3 font-family: 'Roboto', sans-serif;
4}
Вложенность
SASS повышает читаемость кода, позволяя использовать вложенные CSS-селекторы.
Пример кода
1nav {
2 ul {
3 list-style: none;
4 margin: 0;
5 padding: 0;
6
7 li {
8 display: inline-block;
9
10 a {
11 text-decoration: none;
12 color: #333;
13
14 &:hover {
15 color: #3498db;
16 }
17 }
18 }
19 }
20}
- Этот код использует вложенную иерархию для наглядного отображения структуры стилей.
Результат компиляции
1nav ul {
2 list-style: none;
3 margin: 0;
4 padding: 0;
5}
6
7nav ul li {
8 display: inline-block;
9}
10
11nav ul li a {
12 text-decoration: none;
13 color: #333;
14}
15
16nav ul li a:hover {
17 color: #3498db;
18}
Миксины
Миксины позволяют использовать один и тот же код в нескольких селекторах.
Пример кода
1@mixin border-radius($radius) {
2 border-radius: $radius;
3 -webkit-border-radius: $radius;
4 -moz-border-radius: $radius;
5}
6
7button {
8 @include border-radius(10px);
9}
10
11.card {
12 @include border-radius(5px);
13}
- Этот код определяет стиль
border-radius
с помощью@mixin
и повторно использует его вbutton
и.card
посредством@include
, что позволяет эффективно оформлять элементы без дублирования кода.
Результат компиляции
1button {
2 border-radius: 10px;
3 -webkit-border-radius: 10px;
4 -moz-border-radius: 10px;
5}
6
7.card {
8 border-radius: 5px;
9 -webkit-border-radius: 5px;
10 -moz-border-radius: 5px;
11}
Наследование (@extend)
Наследование позволяет применять существующие стили к другим селекторам.
Пример кода
1%button-style {
2 padding: 10px 20px;
3 color: white;
4 background-color: #3498db;
5}
6
7button {
8 @extend %button-style;
9 border: none;
10}
11
12.link-button {
13 @extend %button-style;
14 text-decoration: none;
15}
- Этот код определяет селектор-заполнитель
%button-style
и применяет общие стили кbutton
и.link-button
с помощью@extend
, что способствует повторному использованию и согласованности.
Результат компиляции
1button, .link-button {
2 padding: 10px 20px;
3 color: white;
4 background-color: #3498db;
5}
6
7button {
8 border: none;
9}
10
11.link-button {
12 text-decoration: none;
13}
Условия и циклы
SASS поддерживает условия и циклы для динамического создания стилей.
Пример условного выражения
1$theme: dark;
2
3body {
4 background-color: if($theme == light, #fff, #333);
5 color: if($theme == light, #333, #fff);
6}
- Этот код использует функцию
if
в SASS для переключения цветов фона и текста в зависимости от значения$theme
, обеспечивая динамическое создание стилей с помощью условий.
Пример цикла
1@for $i from 1 through 3 {
2 .column-#{$i} {
3 width: calc(100% / $i);
4 }
5}
- Этот код использует цикл
@for
в SASS для динамического создания классов от.column-1
до.column-3
.
Результат компиляции
1body {
2 background-color: #333;
3 color: #fff;
4}
5
6.column-1 {
7 width: 100%;
8}
9
10.column-2 {
11 width: 50%;
12}
13
14.column-3 {
15 width: 33.3333%;
16}
Разделение и импорт файлов
SASS позволяет разбивать файлы и повторно использовать их с помощью @use
или @import
.
Структура файлов
styles/
_variables.scss
_mixins.scss
main.scss
_variables.scss
1$primary-color: #3498db;
_mixins.scss
1@mixin flex-center {
2 display: flex;
3 justify-content: center;
4 align-items: center;
5}
main.scss
1@use 'variables';
2@use 'mixins';
3
4header {
5 background-color: variables.$primary-color;
6 @include mixins.flex-center;
7}
Результат компиляции
1header {
2 background-color: #3498db;
3 display: flex;
4 justify-content: center;
5 align-items: center;
6}
Резюме
Использование SASS упрощает написание CSS и повышает удобство повторного использования и сопровождения кода.
Вы можете следовать этой статье, используя Visual Studio Code на нашем YouTube-канале. Пожалуйста, также посмотрите наш YouTube-канал.