dir.by  
  Поиск  
Программирование, разработка, тестирование
SCSS файл (с помощью компилятора SASS получаем CSS файл)
Что такое SCSS файл ?
  Посмотрели 3731 раз(а)    
 Что такое SCSS файл ? 
последнее обновление: 17 июня 2020
Все стили хранятся в .css файле.

Когда .css файл большой, то становится сложно менять стили в этом файле. Потому что их много.

Чтобы привести стили в порядок, как-то их сгрупировать используется конвертация Sass (препроцессор).

То есть вы создаете .scss файл.
В .scss файле вы можете использовать:
• переменные
• вложенности
• миксины
• наследование
и другие приятные вещи

Запускаете конвертацию Sass (препроцессор) и ваш .scss файл конверитруется в .css файл.

На заметку!
scss часто сравнивают с less.
scss более старый.
less относительно новый компилятор, ему около 4 лет.
В настоящее время less основан на Javascript.
Переменные в файле .scss
Чтобы создать переменную нужно использовать символ $
В переменных Вы можете хранить цвета, стеки шрифтов или любые другие значения.
Файл my.scss
$font-stack: Helvetica;
$primary-color: #333;

body {
     font-family: $font-stack;
     color: $primary-color;
}
Файл my.css
body {
     font-family: Helvetica;
     color: #333;
}
Переменные с математическими операциями в файле .scss
Файл my.scss
.button{
     $unit: 3px;
     border:$unit solid #ddd;
     padding: $unit * 3;
     margin: $unit * 2;
}

.box{
     $base_unit: 1px;
     border: $base_unit $base_unit + 1 $base_unit + 2 $base_unit + 3
}
Файл my.css
.button {
     border: 3px solid #ddd;
     padding: 9px;
     margin: 6px;
}

.box {
     border: 1px 2px 3px 4px;
}
Вложенности в файле .scss
Sass позволит вам вкладывать CSS селекторы таким же образом, как и в визуальной иерархии HTML. Но помните, что чрезмерное количество вложенностей делает ваш документ менее читабельным и воспринимаемым, что считается плохой практикой.
Файл my.scss
nav {
     ul {
          margin: 0;
          padding: 0;
          list-style: none;
     }

     li { display: inline-block; }

     a {
          display: block;
          padding: 6px 12px;
          text-decoration: none;
     }
}
Файл my.css
nav ul {
     margin: 0;
     padding: 0;
     list-style: none;
}

nav li {
     display: inline-block;
}

nav a {
     display: block;
     padding: 6px 12px;
     text-decoration: none;
}
Импорт scss в scss файл
Вы можете создавать фрагменты Scss-файла, которые будут содержать в себе небольшие отрывки CSS, которые можно будет использовать в других Sass-файлах.
Это отличный способ сделать ваш CSS модульным, а также облегчить его обслуживание.
Фрагмент — это простой Sass-файл, имя которого начинается с нижнего подчеркивания, например, _partial.scss.
Нижнее подчеркивание в имени Scss-файла говорит компилятору о том, что это только фрагмент и он не должен компилироваться в CSS.
Фрагменты Scss подключаются при помощи директивы @import.

Директива @import импортирует указанный в директиве файл в тот, где он вызывается, т.е. на выходе получается один CSS-файл, скомпилированный из нескольких фрагментов.

Например, у вас есть несколько фрагментов Scss-файлов:
_reset.scss
и
base.scss

Мы хотим импортировать _reset.scss в base.scss.

Обратите внимание на то, что мы используем @import 'reset'; в base.scss файле. Когда вы импортируете файл, то не нужно указывать расширение .scss. Sass — умный язык и он сам догадается.
Файл _reset.scss
html,
body,
ul,
ol {
     margin: 0;
     padding: 0;
}


Файл base.scss
@import 'reset';
body {
     font: 100% Helvetica, sans-serif;
     background-color: #efefef;
}
Файл base.css
html,
body,
ul,
ol {
     margin: 0;
     padding: 0;
}
body {
     font: 100% Helvetica, sans-serif;
     background-color: #efefef;
}
Миксины (примеси)
Миксины позволяют создавать группы деклараций CSS, которые вам придется использовать по нескольку раз на сайте.
Вы даже можете передавать переменные в миксины, чтобы сделать их более гибкими. Так же хорошо использовать миксины для вендорных префиксов. Пример для transform:
Файл base.scss
@mixin transform($property) {
     -webkit-transform: $property;
     -ms-transform: $property;
     transform: $property;
}
.box {
     @include transform(rotate(30deg));
}
Файл base.css
.box {
     -webkit-transform: rotate(30deg);
     -ms-transform: rotate(30deg);
     transform: rotate(30deg);
}
Расширение/Наследование
Используя директиву @extend можно наследовать наборы свойств CSS от одного селектора другому. Это позволяет держать ваш Scss-файл в «чистоте». В нашем примере мы покажем вам как сделать стили оповещений об ошибках, предупреждениях и удачных исходах, используя другие возможности Sass, которые идут рука-об-руку с расширением, классами-шаблонами.
Класс-шаблон - особый тип классов, который выводится только при использовании расширения - это позволит сохранить ваш скомпилированный CSS чистым и аккуратным.

В примере обратите внимание что %equal-heights не попадает в CSS, так как ни разу не был использован.
Файл base.scss
// This CSS will print because %message-shared is extended.
%message-shared {
     border: 1px solid #ccc;
     padding: 10px;
     color: #333;
}

// This CSS won't print because %equal-heights is never extended.
%equal-heights {
     display: flex;
     flex-wrap: wrap;
}

.message {
     @extend %message-shared;
}

.success {
     @extend %message-shared;
     border-color: green;
}

.error {
     @extend %message-shared;
     border-color: red;
}

.warning {
     @extend %message-shared;
     border-color: yellow;
}
Файл base.css
.message, .success, .error, .warning {
     border: 1px solid #ccc;
     padding: 10px;
     color: #333;
}

.success {
     border-color: green;
}

.error {
     border-color: red;
}

.warning {
     border-color: yellow;
}
Математические операторы
Sass имеет несколько стандартных математических операторов, таких как +, -, *, / и %.
В нашем примере мы совершаем простые математические вычисления для расчета ширины aside и article.
Мы создали простую адаптивную модульную сетку, с шириной в 960 пикселей. Используя математические операторы, мы использовали полученные данные с пиксельными значениями и конвертировали их в процентные, причем без особых усилий.
Файл base.scss
.container {
     width: 100%;
}

article[role="main"] {
     float: left;
     width: 600px / 960px * 100%;
}

aside[role="complementary"] {
     float: right;
     width: 300px / 960px * 100%;
}
Файл base.css
.container {
     width: 100%;
}

article[role="main"] {
     float: left;
     width: 62.5%;
}

aside[role="complementary"] {
     float: right;
     width: 31.25%;
}
 
 
Следующая тема →
Конвертируем файл .SCSS в файл .CSS (в командной строке выполним: "sass 1.scss:1.css") | node.js
 
Ваши Отзывы ... комментарии ...
   
Вашe имя
Ваш комментарий (www ссылки может добавлять только залогиненный пользователь)

  Объявления  
  Объявления  
 
Что такое SCSS файл ?
Вариант 1. Конвертируем файл .SCSS в файл .CSS (вариант очень простой)
Конвертируем файл .SCSS в файл .CSS (в командной строке выполним: "sass 1.scss:1.css") | node.js
Вариант 2. Конвертируем файл .SCSS в файл .CSS (используем файл package.json)
Конвертируем файл .SCSS в файл .CSS (в командной строке выполним: "npm run EvgenConvertCSS" . EvgenConvertCSS это скрипт конвертирует файл 1.scss в файл 1.css. Скрипт EvgenConvertCSS находится в файле package.json) | npm, node.js

  Ваши вопросы присылайте по почте: info@dir.by  
Яндекс.Метрика