Réponses:
Sass est un pré-processeur CSS avec des avancées de syntaxe. Les feuilles de style dans la syntaxe avancée sont traitées par le programme et transformées en feuilles de style CSS régulières. Cependant, ils n'étendent pas la norme CSS elle-même.
Les variables CSS sont prises en charge et peuvent être utilisées, mais pas aussi bien que les variables de pré-processeur.
Pour la différence entre SCSS et Sass, ce texte sur la page de documentation Sass devrait répondre à la question:
Il existe deux syntaxes disponibles pour Sass. Le premier, appelé SCSS (Sassy CSS) et utilisé tout au long de cette référence, est une extension de la syntaxe de CSS. Cela signifie que chaque feuille de style CSS valide est un fichier SCSS valide ayant la même signification. Cette syntaxe est améliorée avec les fonctionnalités Sass décrites ci-dessous. Les fichiers utilisant cette syntaxe ont l' extension .scss .
La seconde syntaxe et plus ancienne , connue sous le nom de syntaxe en retrait (ou parfois simplement «Sass»), fournit une manière plus concise d'écrire du CSS. Il utilise une indentation plutôt que des crochets pour indiquer l'imbrication des sélecteurs et des sauts de ligne plutôt que des points-virgules pour séparer les propriétés. Les fichiers utilisant cette syntaxe ont l' extension .sass .
Cependant, tout cela ne fonctionne qu'avec le précompilateur Sass qui crée finalement CSS. Ce n'est pas une extension de la norme CSS elle-même.
scss
et sass
est plus qu'une simple préférence personnelle de nos jours. scss
est beaucoup plus répandu - utilisé dans la plupart des cadres CSS populaires comme Bootstrap
, Foundation
, Materialize
etc. Les principaux cadres de l' interface utilisateur favorisent scss
plus sass
par défaut - angulaire, réagissez, Vue. Tous les tutoriels ou démos utiliseront généralement scss
par exemple create-react-app
facebook.github.io/create-react-app/docs/…
Je fais partie des développeurs qui ont aidé à créer Sass.
La différence est l'interface utilisateur. Sous l'extérieur textuel, ils sont identiques. C'est pourquoi les fichiers sass et scss peuvent s'importer. En fait, Sass a quatre analyseurs syntaxiques: scss, sass, CSS et moins. Tous ces éléments convertissent une syntaxe différente en une arborescence de syntaxe abstraite qui est ensuite traitée en sortie CSS ou même dans l'un des autres formats via l'outil sass-convert.
Utilisez la syntaxe que vous préférez, les deux sont entièrement pris en charge et vous pouvez changer entre eux plus tard si vous changez d'avis.
Le .sass
fichier Sass est visuellement différent du .scss
fichier, par exemple
$color: red
=my-border($color)
border: 1px solid $color
body
background: $color
+my-border(green)
$color: red;
@mixin my-border($color) {
border: 1px solid $color;
}
body {
background: $color;
@include my-border(green);
}
Tout document CSS valide peut être converti en Sassy CSS (SCSS) simplement en changeant l'extension de .css
en .scss
.
.scss
vers est-elle .css
la même que .css
vers .scss
?
.css
se trouve être valide .scss
. Dès que vous ajoutez du code spécifique scss, la modification du nom de fichier revient en tant que fichier css non valide. css
est un carré et scss
est un rectangle. Tous les carrés sont des rectangles, mais tous les rectangles ne sont pas des carrés.
Sass ( Syntactically Awesome StyleSheets ) a deux syntaxes:
Ils font donc tous deux partie du préprocesseur Sass avec deux syntaxes possibles différentes.
La différence la plus importante entre SCSS et Sass d' origine :
SCSS :
La syntaxe est similaire à CSS (à tel point que chaque CSS3 valide régulier est également un SCSS valide , mais la relation dans l'autre sens ne se produit évidemment pas)
Utilise des accolades {}
;
:
@mixin
directive@include
directiveSass d' origine :
=
au lieu de:
=
signe+
signeCertains préfèrent Sass , la syntaxe d'origine - tandis que d'autres préfèrent SCSS . Quoi qu'il en soit, mais il convient de noter que la syntaxe en retrait de Sass n'a pas été et ne sera jamais déconseillée .
Conversions avec sass-convert :
# Convert Sass to SCSS
$ sass-convert style.sass style.scss
# Convert SCSS to Sass
$ sass-convert style.scss style.sass
Sa syntaxe est différente, et c'est le principal avantage (ou inconvénient, selon votre point de vue).
J'essaierai de ne pas répéter une grande partie de ce que les autres ont dit, vous pouvez facilement le rechercher sur Google, mais à la place, j'aimerais dire quelques choses de mon expérience en utilisant les deux, parfois même dans le même projet.
SASS pro
.sass
est réutilisable est beaucoup plus facile »et plus lisible qu'en .scss
(subjectif).Contre SASS
body color: red
comme vous le pouvez dans .scssbody {color: red}
.scss
fichiers (avec des .sass
fichiers) dans votre projet ou à les convertir .sass
.A part cela - ils font le même travail.
Maintenant, ce que j'aime faire, c'est d'écrire des mixins et des variables dans .sass
et du code qui sera effectivement compilé en CSS .scss
si possible (c'est-à-dire que Visual studio ne prend pas en charge, .sass
mais chaque fois que je travaille sur des projets Rails, j'en combine généralement deux, pas dans un fichier ofc).
Dernièrement, j'envisage de donner une chance à Stylus (pour un préprocesseur CSS à temps plein) car il vous permet de combiner deux syntaxes dans un fichier (parmi d'autres fonctionnalités). Ce n'est peut-être pas une bonne direction à prendre pour une équipe, mais lorsque vous la maintenez seule - c'est ok. Le stylet est en fait plus flexible lorsque la syntaxe est en question.
Et enfin mixin pour la comparaison de la syntaxe .scss
vs .sass
:
// SCSS
@mixin cover {
$color: red;
@for $i from 1 through 5 {
&.bg-cover#{$i} { background-color: adjust-hue($color, 15deg * $i) }
}
}
.wrapper { @include cover }
// SASS
=cover
$color: red
@for $i from 1 through 5
&.bg-cover#{$i}
background-color: adjust-hue($color, 15deg * $i)
.wrapper
+cover
Depuis la page d'accueil de la langue
Sass a deux syntaxes. La nouvelle syntaxe principale (à partir de Sass 3) est connue sous le nom de «SCSS» (pour «Sassy CSS») et est un sur-ensemble de la syntaxe de CSS3. Cela signifie que chaque feuille de style CSS3 valide est également SCSS valide. Les fichiers SCSS utilisent l'extension .scss.
La seconde syntaxe plus ancienne est connue sous le nom de syntaxe en retrait (ou simplement «Sass»). Inspiré par la concision de Haml, il est destiné aux personnes qui préfèrent la concision à la similitude avec CSS. Au lieu de crochets et de points-virgules, il utilise l'indentation des lignes pour spécifier les blocs. Bien qu'elle ne soit plus la syntaxe principale, la syntaxe en retrait continuera à être prise en charge. Les fichiers dans la syntaxe en retrait utilisent l'extension .sass.
SASS est un langage interprété qui crache CSS. La structure de Sass ressemble à CSS (à distance), mais il me semble que la description est un peu trompeuse; ce n'est pas un remplacement pour CSS ou une extension. C'est un interpréteur qui crache du CSS à la fin, donc Sass a toujours les limites du CSS normal, mais il les masque avec du code simple.
La différence fondamentale est la syntaxe. Alors que SASS a une syntaxe lâche avec des espaces blancs et aucun point-virgule, le SCSS ressemble plus à CSS.
SASS signifie Syntactically Awesome StyleSheets. C'est une extension de CSS qui ajoute puissance et élégance au langage de base. SASS est nouvellement nommé SCSS avec quelques chages, mais l'ancien SASS est également là. Avant d'utiliser SCSS ou SASS, veuillez voir la différence ci-dessous.
Un exemple de syntaxe SCSS et SASS:
SCSS
$font-stack: Helvetica, sans-serif;
$primary-color: #333;
body {
font: 100% $font-stack;
color: $primary-color;
}
//Mixins
@mixin transform($property) {
-webkit-transform: $property;
-ms-transform: $property;
transform: $property;
}
.box { @include transform(rotate(30deg)); }
TOUPET
$font-stack: Helvetica, sans-serif
$primary-color: #333
body
font: 100% $font-stack
color: $primary-color
//Mixins
=transform($property)
-webkit-transform: $property
-ms-transform: $property
transform: $property
.box
+transform(rotate(30deg))
Sortie CSS après compilation (idem pour les deux)
body {
font: 100% Helvetica, sans-serif;
color: #333;
}
//Mixins
.box {
-webkit-transform: rotate(30deg);
-ms-transform: rotate(30deg);
transform: rotate(30deg);
}
Pour plus de guide, vous pouvez voir le site officiel .
Sass était le premier, et la syntaxe est un peu différente. Par exemple, y compris un mixin:
Sass: +mixinname()
Scss: @include mixinname()
Sass ignore les accolades et les points-virgules et se couche sur l'imbrication, ce que j'ai trouvé plus utile.
La différence entre l'article SASS et SCSS explique la différence dans les détails. Ne soyez pas confus par les options SASS et SCSS, même si je l'étais aussi au départ, .scss est Sassy CSS et est la prochaine génération de .sass.
Si cela n'a pas de sens, vous pouvez voir la différence de code ci-dessous.
/* SCSS */
$blue: #3bbfce;
$margin: 16px;
.content-navigation {
border-color: $blue;
color: darken($blue, 9%);
}
.border {
padding: $margin / 2; margin: $margin / 2; border-color: $blue;
}
Dans le code ci-dessus, nous utilisons; pour séparer les déclarations. J'ai même ajouté toutes les déclarations pour .border sur une seule ligne pour illustrer davantage ce point. En revanche, le code SASS ci-dessous doit être sur différentes lignes avec indentation et il n'y a pas d'utilisation du;.
/* SASS */
$blue: #3bbfce
$margin: 16px
.content-navigation
border-color: $blue
color: darken($blue, 9%)
.border
padding: $margin / 2
margin: $margin / 2
border-color: $blue
Vous pouvez voir dans le CSS ci-dessous que le style SCSS est beaucoup plus similaire au CSS ordinaire que l'ancienne approche SASS.
/* CSS */
.content-navigation {
border-color: #3bbfce;
color: #2b9eab;
}
.border {
padding: 8px;
margin: 8px;
border-color: #3bbfce;
}
Je pense que la plupart du temps ces jours-ci, si quelqu'un mentionne qu'il travaille avec Sass, il fait référence à la création en .scss plutôt qu'à la manière traditionnelle .sass.
L'original sass
ressemble à la syntaxe ruby, similaire à ruby, jade etc ...
Dans ces syntaxes, nous n'utilisons pas {}
, au lieu de cela, nous allons avec des espaces blancs, également pas d'utilisation de ;
...
Dans les scss
syntaxes sont plus semblables CSS
, mais avec plus d'options comme: imbrication, déclaration, etc., similaires à less
et autres prétraitements CSS
...
Ils font essentiellement la même chose, mais je mis deux lignes de chacun pour voir la différence de syntaxe, regardez la {}
, ;
et spaces
:
TOUPET:
$width: 100px
$color: green
div
width: $width
background-color: $color
SCSS:
$width: 100px;
$color: green;
div {
width: $width;
background-color: $color;
}
La réponse compacte:
SCSS fait référence à la syntaxe principale prise en charge par le pré-processeur CSS Sass .
.scss
représentent la syntaxe standard prise en charge par Sass. SCSS est un sur-ensemble de CSS..sass
représentent la "plus ancienne" syntaxe prise en charge par Sass provenant du monde Ruby.SASS est Syntactically Awesome Style Sheets et est une extension de CSS qui fournit les fonctionnalités de règles imbriquées, d'héritage, Mixins tandis que SCSS est Sassy Cascaded Style Sheets qui est similaire à celle de CSS et comble les lacunes et les incompatibilités entre CSS et SASS. Il était sous licence MIT. Cet article a plus sur les différences: https://www.educba.com/sass-vs-scss/