SASS (Syntactically Awesome StyleSheets)

29.02.2012
SASS (Syntactically Awesome StyleSheets)
Автор:

SASS — це метамова на основі CSS, призначена для збільшення рівня абстракції CSS коду та спрощення файлів каскадних таблиць стилю.

SASS надає більше можливостей і свободи при написанні CSS для створення сайтів. Це як програмна мова всередині CSS. Ви можете використовувати щось подібне до функцій зі змінними, логічно структурувати ваш код (структурованість стилів і класів).

SASS має два синтаксиса. Новий основний синтаксис відомий як "SCSS" (SassyCSS), розширений синтаксис CSS3.  Це означає, що кожен чинний стиль CSS3 валідний в SCSS також. SCSS файли мають розширення “.scss”.

Другий, більш старий синтаксис відомий як SASS. Натхненний стислістю HAML, він призначений для тих, хто віддає перевагу лаконічності CSS. Замість фігурних дужок і крапок з комою, використовуються відступи. SASS синтаксис вже не є основним на даний момент, але він надалі буде підтримуватися. Файли з SASS синтаксисом використовують розширення “.sass”.

 SASS vs SCSS

//SASS
 .content
   border: 1px solid red
   color: black
 
 .border
   padding: 10px
   margin: 10px  
//SCSS
 .content {
   border: 1px solid red;
   color: black;
 }
 
 .border {
   padding: 10px;
   margin: 10px;
  } 

Особисто я рекомендую використовувати SCSS синтаксис, бо він більш читабельний і зрозумілий. Як видно, синтаксис SCSS нічим не відрізняється від синтаксису CSS. Але при цьому він має масу корисних можливостей, які можуть полегшити життя верстальщика. 

Можливості SASS

  1. Variables (Змінні) 
  2. Nesting (Вкладеність) 
  3. Mixins (Міксини) 
  4. Selector Inheritance (Наслідування правил селекторів)

Variables (Змінні)

Скрізь використовуєте один колір? Вам необхідно зробити деякі розрахунки висоти, ширини або розміру тексту? SASS підтримує змінні, а також основні математичні операції і безліч корисних функцій (докладніше  тут).

$color = #000;
$spacing = 10px;
.content {
  border: 1px solid red;
  color: $color;
}
.border {
  padding: $spacing;
  margin: $spacing;
}

Nesting (Вкладеність)

SASS може уникнути повторення селекторів шляхом вкладення їх один в одного. Так само працює з властивостями.

.content {
  margin: 2em 0;
  p {
    text-align: right;
    font-size: 14px;
  }
}
 
body{
  color: $color
  font: {
    family: serif;
    weight: bold;
    size: 1.2em;
  }
}

 

Mixins(Міксини) 

Міксини дозволяють повторно використовувати цілі шматки CSS, їх селектори і властивості, ще більш корисно, аніж змінні. Ви навіть можете задати аргументи. Грубо кажучи, міксини - це CSS "функції".

@mixin table {
  th {
    text-align: center;
    font-weight: bold;
  }
  td, th {padding: 2px}
}
 
@mixin left($dist) {
  float: left;
  margin-left: $dist;
}
 
#data {
  @include left(10px);
  @include table;
}

Selector Inheritance(Наслідування правил селекторів)

Sass може успадковувати стилі примінені до певного селектору без дублювання CSS властивостей.

.error {
  border: 1px #f00;
  background: #fdd;
}
 
.warning {
  font-size: 1.3em;
  font-weight: bold;
}
 
.badError {
  @extend .error;
  border-width: 3px;
}

Компіляція SASS в CSS

Якщо у вас є файли (SCSS або SASS), в яких ви пишете на Sass. Браузери не розуміють такий синтаксис. Браузери розуміють тільки CSS, отже, нам потрібно передати наші стилі в форматі CSS.  Для цього наші sass/scss потрібно скомпілювати. В такому випадку вам знадобиться спеціальний фреймворк, відмінно з цим справляється Compass.

Установка Compass'а передбачає наявність Ruby, якщо вона не встановлена, необхідно буде встановити.
 

Установка і використання Compass

Для установки  Compass використовуємо наступні команди в консолі:
1) gem update - system
2) gem install compass
Коли compass встановлено, треба буде створити compass-проект:
compass create <path-to-project>
Compass створить scss файли, в яких можна буде писати наші стилі та додавати свої .scss файли. 
Для запуску компілятора використовуємо команду compass watch. Можливостей  у  Compass'а  масса, більш докладно про всі можливості  і приклади використання можна прочитати на офіційному сайті Compass.
2 votes, Рейтинг: 5

Також по темі

1

За допомогою програми Smush.it можна отримувати оптимізацію зображень, не змінюючи їх зовнішній вигляд чи якість.

2

Тема Fusion орієнтована на інтеграцію з модулем Skinr. Які саме модулі потрібно встановити для нормальної роботи теми та можливості теми Fusion опишемо в статті.

3

Будь-який сучасний сайт - чи малопримітний сайтик, чи розкручений інтернет-молл - є складним продуктом, а його розробка це виважена і кропітка робота, до якої...

4

Призначення інтернет-магазину - продаж товарів. Та якщо магазин викликав недовіру, клієнт не зробить замовлення. В блозі розглянемо проблеми сайтів, які викликають сумніви у споживачів.

Subscribe to our blog updates