D'après ce que j'ai lu, Sass est un langage qui rend CSS plus puissant avec un support variable et mathématique.
Quelle est la différence avec SCSS? Est-ce censé être le même langage? Similaire? Différent?
Sass est un pré-processeur CSS avec des améliorations de la syntaxe. Les feuilles de style dans la syntaxe avancée sont traitées par le programme et transformées en feuilles de style CSS standard. Cependant, ils ( ne développent pas le standard CSS lui-même.
Les variables CSS sont prises en charge et peuvent être utilisées, mais pas aussi bien que les variables de pré-processeur.
La différence entre SCSS et Sass, ce texte sur le page de documentation Sass devrait répondre à la question suivante:
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 et ancienne syntaxe , appelée syntaxe indentée (ou parfois simplement "Sass"), fournit un moyen plus concis d’écrire CSS. Il utilise l'indentation plutôt que les crochets pour indiquer l'imbrication des sélecteurs et les nouvelles lignes plutôt que les 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.
Je suis l'un 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 l'un l'autre. En fait, Sass dispose de quatre analyseurs syntaxiques: scss, sass, CSS et moins. Tous ces éléments convertissent une syntaxe différente en un arbre de syntaxe abstraite , qui est ensuite traité en sortie CSS ou même sur l'un des autres formats via l'outil sass-convert.
Utilisez la syntaxe qui vous convient le mieux, les deux sont entièrement pris en charge et vous pourrez les changer ultérieurement si vous changez d'avis.
Le fichier Sass .sass
est visuellement différent du fichier .scss
, 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 remplaçant l'extension de .css
par .scss
.
Sass ( StyleSheets syntaxiquement impressionnants ) ont deux syntaxes:
Ils font donc tous deux partie du préprocesseur Sass avec deux syntaxes différentes possibles.
La principale différence entre SCSS et l'original Sass :
SCSS:
La syntaxe est semblable à CSS (à tel point que chaque valeur valide régulière CSS3 est également valide SCSS, mais la relation dans l'autre sens ne se produit évidemment pas)
Utilise des accolades {}
;
:
@mixin
@include
Original Sass :
=
au lieu de :
=
+
Certains préfèrent Sass , la syntaxe originale - 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 arnaque, selon votre perspective).
Je vais essayer de ne pas répéter une grande partie de ce que les autres ont dit, vous pouvez facilement le faire sur Google, mais j'aimerais plutôt dire quelques mots tirés de mon expérience en utilisant les deux, parfois même dans le même projet.
SASS pro
.sass
est beaucoup plus facile à lire et lisible que dans .scss
(subjectif).contre SASS
body color: red
comme vous pouvez le faire en .scss body {color: red}
.scss
(à côté des fichiers .sass
) dans votre projet ou à les convertir en .sass
.Autre que cela - ils font le même travail.
Maintenant, ce que j'aime faire, c’est écrire des mixins et des variables dans .sass
et du code qui sera compilé en CSS dans .scss
si possible (c’est-à-dire que Visual Studio ne prend pas en charge .sass
mais chaque fois que je travaille sur Rails projets, je combine généralement deux d’entre eux, pas dans un seul fichier).
Dernièrement, je songe à donner Stylus une chance (pour un préprocesseur CSS à temps plein), car cela vous permet de combiner deux syntaxes dans un fichier (parmi quelques autres fonctionnalités). Ce n'est peut-être pas une bonne direction à prendre pour une équipe, mais si vous la maintenez seule, c'est bon. Le stylet est en fait plus flexible lorsque la syntaxe est en cause.
Et enfin, mixin pour la comparaison de 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
De 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 constitue un sur-ensemble de la syntaxe de CSS3. Cela signifie que chaque feuille de style CSS3 valide est également un SCSS valide. Les fichiers SCSS utilisent l'extension .scss.
La seconde syntaxe la plus ancienne est connue sous le nom de syntaxe indentée (ou simplement "Sass"). similitude avec CSS. Au lieu de crochets et de points-virgules, il utilise l'indentation de lignes pour spécifier des blocs. Bien que ce ne soit plus la syntaxe principale, la syntaxe indentée continuera à être prise en charge. Les fichiers dans la syntaxe indente 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. c'est pas un remplacement pour CSS, ou une extension. C'est un interprète qui crache finalement du CSS, donc Sass a toujours les limitations du CSS normal, mais il les masque avec un code simple.
La différence fondamentale est la syntaxe. Alors que SASS a une syntaxe lâche avec des espaces et aucun point-virgule, le SCSS ressemble davantage à CSS.
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 pose sur l'imbrication, ce que j'ai trouvé plus utile.
SASS signifie Syntactically Awesome StyleSheets. C'est une extension de CSS qui ajoute de la puissance et de l'élégance au langage de base. Le SASS a récemment été nommé SCSS avec quelques modifications, mais l'ancien SASS est également présent. Avant d’utiliser SCSS ou SASS, veuillez vous reporter à la différence ci-dessous.
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)); }
SASS
$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))
Affiche le CSS après la compilation (identique 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 référence officielle site web
Différence entre SASS et SCSS Cet article explique la différence de détail. Ne soyez pas déconcerté par les options SASS et SCSS, même si j’étais aussi au départ. .Scss est Sassy CSS et constitue 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; séparer les déclarations. J'ai même ajouté toutes les déclarations de .border sur une seule ligne pour illustrer davantage ce point. En revanche, le code SASS ci-dessous doit figurer sur différentes lignes avec une indentation et aucune utilisation du caractère;.
/* 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 normal 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.
Original sass
est Ruby semblable à la syntaxe, semblable à Ruby, jade, etc.
Dans ces syntaxes, nous n'utilisons pas {}
, nous utilisons plutôt des espaces blancs et aucune utilisation de ;
...
Dans scss
, les syntaxes ressemblent davantage à CSS
, mais avec davantage d'options telles que: imbrication, déclaration, etc., similaires à less
et à d'autres pré-traitements CSS
...
Ils font fondamentalement la même chose, mais je mets quelques lignes de chacune pour voir la différence de syntaxe. Regardez le {}
, ;
et spaces
:
SASS:
$width: 100px
$color: green
div
width: $width
background-color: $color
SCSS:
$width: 100px;
$color: green;
div {
width: $width;
background-color: $color;
}
Réponse compacte:
SCSS désigne la syntaxe principale prise en charge par le pré-processeur Sass CSS.
.scss
représentent la syntaxe standard prise en charge par Sass. SCSS est un sur-ensemble de CSS..sass
représentent la syntaxe "plus ancienne" prise en charge par Sass provenant du monde Ruby.