Grunderna i SASS

Den här artikeln förklarar grunderna i SASS.

Vi förklarar de grundläggande funktionerna i SASS steg för steg och visar hur man använder dem med praktiska exempelkoder.

YouTube Video

Grunderna i SASS

SASS (Syntactically Awesome Stylesheets) är ett stilmallspråk som utökar CSS. Genom att använda SASS kan du dra nytta av avancerade funktioner som inte är tillgängliga i CSS, såsom variabler, nästling, mixins och arv. Detta gör hantering och återanvändning av stilmallar mycket enklare.

Vad är SASS?

SASS är ett språk som förenklar CSS-skrivandet samtidigt som det möjliggör mer flexibel och kraftfull design. SASS erbjuder även SCSS (Sassy CSS)-syntaxen, som liknar den vanliga CSS-syntaxen. Här är ett exempel:.

Exempel på SCSS

1$base-font: Arial, sans-serif;
2$bg-color: #f4f4f4;
3
4body {
5    font-family: $base-font;
6    background-color: $bg-color;
7}

Exempel på CSS

1body {
2    font-family: Arial, sans-serif;
3    background-color: #f4f4f4;
4}

Att installera SASS

Hur du installerar

För att använda SASS installerar du först Node.js och sedan SASS med följande kommando:.

1npm install -g sass

Hur du kompilerar

För att kompilera SASS-filer (.scss eller .sass) till CSS, använd följande kommando:.

1sass input.scss output.css

Du kan också använda alternativet 'watch' för att övervaka filändringar och utföra realtidskompilering.

Variabler

SASS låter dig använda variabler för att återanvända värden som färger och teckenstorlekar.

Exempelkod

1$primary-color: #3498db;
2$font-stack: 'Roboto', sans-serif;
3
4body {
5    color: $primary-color;
6    font-family: $font-stack;
7}
  • Den här koden använder SASS-variabler för att definiera färger och typsnitt, och återanvänder dem inom 'body'-väljaren för att öka konsekvens och underhållbarhet.

Kompilerat resultat

1body {
2    color: #3498db;
3    font-family: 'Roboto', sans-serif;
4}

Nästling

SASS förbättrar kodens läsbarhet genom att tillåta nästlade CSS-väljare.

Exempelkod

 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}
  • Den här koden använder nästlad hierarki för att visuellt tydliggöra struktureringen av stilarna.

Kompilerat resultat

 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}

Mixins

Mixins gör det möjligt att återanvända kod för flera olika väljare.

Exempelkod

 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}
  • Den här koden definierar en 'border-radius'-stil med hjälp av '@mixin' och återanvänder den i 'button' och '.card' med '@include', vilket möjliggör effektiv stilhantering utan duplicering.

Kompilerat resultat

 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}

Arv (@extend)

Arv låter dig använda existerande stilar på andra väljare.

Exempelkod

 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}
  • Den här koden definierar en platshållarväljare '%button-style' och använder '@extend' för att tillämpa gemensamma stilar på både 'button' och '.link-button', vilket främjar återanvändning och konsekvens.

Kompilerat resultat

 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}

Villkor och loopar

SASS stödjer villkor och loopar för att dynamiskt skapa stilar.

Exempel på villkorssats

1$theme: dark;
2
3body {
4    background-color: if($theme == light, #fff, #333);
5    color: if($theme == light, #333, #fff);
6}
  • Den här koden använder SASS-funktionen 'if' för att växla bakgrunds- och textfärger baserat på värdet av '$theme', vilket möjliggör dynamisk stiltilldelning med hjälp av villkor.

Exempel på loop

1@for $i from 1 through 3 {
2    .column-#{$i} {
3        width: calc(100% / $i);
4    }
5}
  • Den här koden använder en SASS '@for'-loop för att dynamiskt generera klasser från '.column-1' till '.column-3'.

Kompilerat resultat

 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}

Filuppdelning och importering

SASS låter dig dela upp filer och återanvända dem med @use eller @import.

Filstruktur

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}

Kompilerat resultat

1header {
2  background-color: #3498db;
3  display: flex;
4  justify-content: center;
5  align-items: center;
6}

Sammanfattning

Genom att använda SASS förenklas CSS-skrivandet och kodens återanvändbarhet och underhåll förbättras.

Du kan följa med i artikeln ovan med hjälp av Visual Studio Code på vår YouTube-kanal. Vänligen kolla även in YouTube-kanalen.

YouTube Video