Niestety przeglądarki internetowe nie są w stanie samodzielnie odczytać pliku typu SASS, aby to zinterpretować trzeba wygenerować na jego bazie plik CSS.
Proces ten można wykonać na kilka sposobów np. za pomocą generatora wbudowanego w edytor kodu lub za pomocą “Wiersza poleceń” – jeśli posiadamy zainstalowaną bibliotekę Ruby.
Wiersz poleceń
W drugim przypadku po uruchomieniu “Wiersza poleceń” ustawić ścieżkę na katalog z plikiem SASS. Następnie użyć kodu:
sass input.scss output.css
gdzie:
- input.scss – plik wejściowy
- output.css – plik wyjściowy
Dla łatwiejszej pracy lepiej by oba pliki miały taką samą nazwę – różniły się jedynie końcówką.
Ciekawe rozwiązania w SASS
Jeną z zalet SASS jest możliwość tworzenia własnych zmiennych do, których możemy przypisywać właściwości.
Zmienną wystarczy zadeklarować raz a następnie trzeba je jedynie wywołać np.:
SASS
nav
ul
margin: 0
padding: 0
list-style: none
li
display: inline-block
a
display: block
padding: 6px 12px
text-decoration: none
SCSS
nav {
ul {
margin: 0;
padding: 0;
list-style: none;
}
li { display: inline-block; }
a {
display: block;
padding: 6px 12px;
text-decoration: none;
}
}
Ten sam zapis w standardowym 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;
}
Przekazywanie wartości – Wstawki
W SASS możemy raz zadeklarować daną wartość lub ich zbiór a następnie wywołać / wykorzystać je kilkakrotnie w innym miejscu. W ten sposób nie musimy kilkakrotnie pisać tego samego kodu wystarczy odwołać się do odpowiedniej zmiennej np.
SASS
=border-radius($radius)
-webkit-border-radius: $radius
-moz-border-radius: $radius
-ms-border-radius: $radius
border-radius: $radius
.box
+border-radius(10px)
SCSS
@mixin border-radius($radius) {
-webkit-border-radius: $radius;
-moz-border-radius: $radius;
-ms-border-radius: $radius;
border-radius: $radius;
}
.box { @include border-radius(10px); }
W tradycyjnym CSS kod wygląda w tak:
.box {
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
-ms-border-radius: 10px;
border-radius: 10px;
}
Rozszerzenia i dziedziczenie
Zasada jest podobna jak powyżej różnica polega na tym, że dziedziczymy cechy innej klasy. Posiadamy więc już konkretne parametry np.
SASS
.message
border: 1px solid #ccc
padding: 10px
color: #333
.success
@extend .message
border-color: green
.error
@extend .message
border-color: red
.warning
@extend .message
border-color: yellow
SCSS
.message {
border: 1px solid #ccc;
padding: 10px;
color: #333;
}
.success {
@extend .message;
border-color: green;
}
.error {
@extend .message;
border-color: red;
}
.warning {
@extend .message;
border-color: yellow;
}
W tradycyjnym CSS zoptymalizowany kody wyglądał by tak:
.message, .success, .error, .warning {
border: 1px solid #cccccc;
padding: 10px;
color: #333;
}
.success {
border-color: green;
}
.error {
border-color: red;
}
.warning {
border-color: yellow;
}
Jak widać na powyższych przykładach korzystając z SASS możemy zoptymalizować nasze arkusze CSS. Przy małych wycinkach kodu co prawda nie jest to konieczne jednak kiedy tworzymy stronę internetową oszczędzi nam to całkiem sporo czasu.
Źródło: http://sass-lang.com/guide
https://aurainweb.pl/wstep-sass-instalacja-podstawowe-komendy/
W branży IT jestem już od 2007 roku. W tym czasie zajmowałam się głównie tematyką pozycjonowania i budowy stron internetowych. Hobbistycznie zajmuje się fotografią, podróżami (głównie tymi mikro). Interesuje się mitologią (Nordycką, Grecką i Rzymską) i historią.