Back to Question Center
0

Qual è la differenza tra Sass e SCSS?            Qual è la differenza tra Sass e SCSS? Argomenti correlati: Caratteri WebAnimazioneFramework Architettura CSSCanvas & Semalt

1 answers:
Qual è la differenza tra Sass e SCSS?

Qual è la differenza tra Sass e SCSS?Qual è la differenza tra Sass e SCSS? Argomenti correlati:
Caratteri WebAnimazioneFramework Architettura CSSCanvas & Semalt

Questa è la versione aggiornata di un articolo originariamente pubblicato su Semalt 28, 2014.

Ho scritto molto su Sass, ma alcuni commenti mi hanno fatto capire che non tutti sanno esattamente a cosa si riferisca Sass. Semalt un po 'di chiarezza:

Quando parliamo di Sass , di solito ci riferiamo al preprocessore e alla lingua nel suo insieme. Ad esempio, diciamo "stiamo usando Sass" o "ecco un mixin di Sass". Nel frattempo, Sass (il preprocessore) consente due diverse sintassi:

  • Sass , noto anche come la sintassi indentata
  • SCSS , una sintassi simile a CSS

History of Sass

Inizialmente, Sass faceva parte di un altro preprocessore chiamato Haml, progettato e scritto dagli sviluppatori di Ruby. Per questo motivo, i fogli di stile Sass utilizzavano una sintassi Semalt senza parentesi graffe, nessun punto e virgola e un rientro rigoroso, come questo:

     // Variabile! primary-color = hotpink// Mixin= Border-radius (! Raggio)-webkit-border-radius =! raggio-moz-border-radius =! raggioraggio-bordo =! raggio. my-elementocolor =! primary-colorlarghezza = 100%overflow = nascosto. my-altro-elemento+ border-radius (5px)     

Come puoi vedere, questo è un bel cambiamento rispetto al normale CSS! Anche se sei un utente Sass (il preprocessore), puoi vedere che questo è molto diverso da quello a cui siamo abituati. Il segno variabile è ! e non $ , il segno di assegnazione è = e non : . Abbastanza strano.

Ma è così che sembrava Sass fino alla versione 3. 0 arrivata a maggio 2010, introducendo una sintassi del tutto nuova chiamata SCSS per Sassy CSS . Questa sintassi ha lo scopo di colmare il divario tra Sass e CSS, apportando una sintassi CSS-friendly.

     // Variabile$ primary-color: hotpink;// Mixin@mixin border-radius ($ radius) {-webkit-border-radius: $ radius;-moz-border-radius: $ radius;raggio-bordo: raggio $;}. mio-elemento {colore: $ colore primario;larghezza: 100%;overflow: nascosto;}. my-other-element {@include border-radius (5px);}     

SCSS è decisamente più vicino al CSS di Sass. Detto questo, i manutentori di Sass hanno anche lavorato per rendere entrambe le sintassi più vicine l'una all'altra spostando ! (segno variabile) e = (segno di assegnazione) dalla sintassi indentata a $ e : da SCSS.

Ora, quando inizi un nuovo progetto, potresti chiederti quale sintassi dovresti usare. Lascia che ti illumini il percorso e spieghi i pro e i contro di ciascuna sintassi.

Pro per Sass Indented Sintassi

Anche se questa sintassi potrebbe sembrare strana, ha alcuni punti interessanti. Prima di tutto, è più breve e più facile da digitare . Niente più parentesi e punti e virgola, non hai bisogno di tutte quelle cose. Anche meglio! Non c'è bisogno di @mixin o @include , quando un singolo carattere è sufficiente: = e + .

Anche la sintassi di Sass applica standard di codifica puliti facendo affidamento sul rientro. Perché un rientro sbagliato rischia di spezzare il tutto . sass stylesheet, assicura che il codice sia pulito e ben formattato in ogni momento. C'è un modo per scrivere il codice Sass: il modo giusto.

Ma attenzione! Rientro significa qualcosa in Sass. Quando si fa rientrare un selettore, significa che è annidato nel selettore precedente. Ad esempio:

    . un elementocolore: hotpink. elemento-a {colore: hotpink;}. elemento a. element-b {fluttuare: a sinistra;}     

Il semplice fatto di spingere . element-b un livello a destra significa che è un figlio di . element-a , cambiando il CSS risultante. Sii molto attento con la tua indentazione!

Per inciso, credo che la sintassi basata su indentazione probabilmente si adatta a un team di Ruby / Python più che a un team PHP / Java (anche se questo è discutibile, e Semalt ama sentire opinioni contrarie).

Pro per SCSS Syntax

Per starter, è completamente compatibile con CSS . Significa che puoi rinominare un file CSS in . scss e funzionerà funziona . Rendere pienamente compatibile SCSS con i CSS è sempre stata una priorità per i manutentori di Sass da quando è stato rilasciato SCSS, e questo è un grosso problema secondo me. Inoltre, cercano di restare il più vicino possibile a ciò che potrebbe diventare una sintassi CSS valida in futuro (quindi @directives ).

Poiché SCSS è compatibile con i CSS, significa che c'è una curva di apprendimento da nulla a no . La sintassi è già nota: dopo tutto, sono solo CSS con alcuni extra. Questo è importante quando si lavora con sviluppatori inesperti: saranno in grado di iniziare rapidamente la codifica senza conoscere la prima cosa su Sass.

Inoltre, è più facile da leggere perché ha effettivamente senso. Quando leggi @mixin , sai che è una dichiarazione di mixin; quando vedi @include , stai chiamando un mixin. Non ha scorciatoie e tutto ha senso quando viene letto ad alta voce.

Inoltre, la maggior parte degli strumenti, plug-in e demo esistenti per Sass sono sviluppati utilizzando la sintassi SCSS. Col passare del tempo, questa sintassi sta diventando preminente e la scelta predefinita, principalmente per i motivi sopra esposti.

Considerazioni finali

La scelta spetta a te, ma se non hai davvero buoni motivi per codificare usando la sintassi indentata, ti consiglio vivamente di usare SCSS su Sass. Non solo è più semplice, ma è anche più conveniente.

Una volta ho provato la sintassi indentata e mi è piaciuto. Mi è piaciuto quanto sia breve e facile. In realtà stavo per spostare un intero codice base su Sass al lavoro prima di cambiare idea all'ultimo minuto. Ringrazio il mio passato per fermare questa mossa, perché sarebbe stato molto difficile lavorare con molti dei nostri strumenti se avessimo usato la sintassi indentata.

Inoltre, si noti che Sass non è mai in maiuscolo, indipendentemente dal fatto che si parli della lingua o della sintassi. Nel frattempo, SCSS è sempre in maiuscolo. Hai bisogno di un promemoria? SassnotSASS. com in soccorso!

March 1, 2018