Section courante

A propos

Section administrative du site

 Langage  Elément  Tutoriel  Aide 
ABAP/4
Ada
Assembleur
Assembly & bytecode
ASP (Active Server Pages)
Basic
C
C++
C# (C Sharp)
Cobol
ColdFusion
Fortran
HTML
Java
JavaScript
LISP
Logo
LotusScript
Oberon
Pascal
Perl
PHP
PL/1
Prolog
Python
Rebol
REXX
Ruby
SAS
NoSQL
SQL
Swift
X++ (Axapta)
GNAT
SMALLAda
VHDL
Assembleur 370
Assembleur 1802
Assembleur 4004
Assembleur 6502
Assembleur 6800
Assembleur 68000
Assembleur 8080 et 8085
Assembleur 8089
Assembleur 80x86
Assembleur AGC4
Assembleur ARM
Assembleur DPS 8000
Assembleur i860
Assembleur Itanium
Assembleur MIPS
Assembleur PDP-11
Assembleur PowerPC
Assembleur RISC-V
Assembleur SPARC
Assembleur SuperH
Assembleur UNIVAC I
Assembleur VAX
Assembleur Z80
Assembleur Z8000
Assembleur z/Architecture
ASSEMBLER/MONITOR 64
Micol Assembler
GFA Assembler
A86
MASM (Macro Assembler)
TASM (Turbo Assembler)
CIL
Jasmin
LLVM
MSIL
Parrot
P-Code (PCode)
SWEET16
G-Pascal
ASP 1.0
ASP 2.0
ASP 3.0
ASP.NET
ASP.NET Core
ABasiC (Amiga)
Adam SmartBASIC
Altair BASIC
AmigaBASIC (Amiga)
AMOS Basic (Amiga)
Atari Basic (Atari 400, 600 XL, 800, 800XL)
Basic Apple II (Integer BASIC/APPLESOFT)
Basic Commodore 64 (CBM-BASIC)
Basic Commodore 128 (BASIC 7.0)
Basic Commodore VIC-20 (CBM-BASIC 2.0)
Basic Coco 1 (Color Basic)
Basic Coco 2 (Extended Color Basic)
Basic Coco 3 (Extended Color Basic 2.0)
BASICA (PC DOS)
Basic Pro
BBC BASIC
Blitz BASIC (Amiga)
DarkBASIC
Dartmouth BASIC
GFA-Basic (Atari ST/Amiga)
GWBASIC (MS-DOS)
Liberty BASIC
Locomotive BASIC (Amstrad CPC)
MSX-Basic
Omikron Basic (Atari ST)
Oric Extended Basic
Power Basic
Quick Basic/QBasic (MS-DOS)
Sinclair BASIC (ZX80, ZX81, ZX Spectrum)
ST BASIC (Atari ST)
Turbo Basic
Vintage BASIC
VBScript
Visual Basic (VB)
Visual Basic .NET (VB .NET)
Visual Basic pour DOS
Yabasic
BeckerBASIC
SIMONS' BASIC
Basic09 d'OS-9
Disk Extended Color Basic
Basic09 d'OS-9
Disk Extended Color Basic
Access
Excel
Visual Basic pour Windows
Visual Basic .NET pour Windows
C Shell Unix (csh)
C pour Amiga
C pour Atari ST
C pour DOS
C pour Falcon030
C pour GEMDOS (Atari ST)
C pour Linux
C pour PowerTV OS
C pour OS/2
C pour Unix
C pour Windows
Aztec C
CoCo-C
GNU C
HiSoft C
IBM C/2
Introl-C
Lattice C
Microsoft C
MinGW C
MSX-C
Open Watcom C
OS-9 C Compiler
Pure C
Quick C
Turbo C
HiSoft C for Atari ST
HiSoft C for CP/M (Amstrad CPC)
C++ pour OS/2
C++ pour Windows
Borland C++
C++Builder
IBM VisualAge C++
Intel C++
MinGW C++
Open Watcom C++
Symantec C++
Turbo C++
Visual C++
Visual C++ .NET
Watcom C++
Zortech C++
C# (C Sharp) pour Windows
Apple III Cobol
Microsoft Cobol
BlueDragon
Lucee
OpenBD
Railo
Smith Project
Microsoft Fortran
WATFOR-77
CSS
FBML
Open Graph
SVG
XML
XSL/XSLT
LESS
SASS
GCJ (GNU)
JSP
Jython
Visual J++
Node.js
TypeScript
AutoLISP
ACSLogo
LotusScript pour Windows
Amiga Oberon
Oberon .NET
Apple Pascal
Delphi/Kylix/Lazarus
Free Pascal
GNU Pascal
HighSpeed Pascal
IBM Personal Computer Pascal
Lisa Pascal
Maxon Pascal
MPW Pascal
OS-9 Pascal
OSS Personal Pascal
Pascal-86
Pascal du Cray Research
Pascal/VS
Pascal-XT
PURE Pascal
QuickPascal
RemObjets Chrome
Sun Pascal
THINK Pascal
Tiny Pascal (TRS-80)
Turbo Pascal
UCSD Pascal
VAX Pascal
Virtual Pascal
Turbo Pascal for CP/M-80
Turbo Pascal for DOS
Turbo Pascal for Macintosh
Turbo Pascal for Windows
CodeIgniter (Cadre d'application)
Drupal (Projet)
Joomla! (Projet)
Phalanger (PHP .NET)
phpBB (Projet)
Smarty (balise)
Twig (balise)
Symfony (Cadre d'application)
WordPress (Projet)
Zend (Cadre d'application)
PL360
PL/M-80
PL/M-86
Turbo Prolog
CPython
IronPython
Jython
PyPy
AREXX
Regina REXX
JMP
Btrieve
Cassandra
Clipper
CouchDB
dBASE
Hbase
Hypertable
MongoDB
Redis
Access
BigQuery
DB2
H2
Interbase
MySQL
Oracle
PostgreSQL
SAP HANA
SQL Server
Sybase
U-SQL
Introduction
Les directives
Les fonctions
Les premiers pas
Préface
Notes légal
Dictionnaire
Recherche

Le CSS en soi peut être amusant, mais les feuilles de style deviennent de plus en plus volumineuses, complexes et difficiles à maintenir. C'est là qu'un préprocesseur peut aider. SASS a des fonctionnalités n'existant pas encore dans CSS comme l'imbrication, les mixins, l'héritage et d'autres avantages astucieux qui vous aident à écrire un CSS robuste et maintenable.

Une fois que vous avez commencé à bricoler avec SASS, il prendra votre fichier SASS prétraité et l'enregistrera en tant que fichier CSS normal que vous pourrez utiliser sur votre site Web.

Le moyen le plus direct d'y parvenir est dans votre terminal. Une fois SASS installé, vous pouvez compiler votre SASS en CSS à l'aide de la commande SASS. Vous devrez indiquer à SASS à partir de quel fichier créer et où générer le CSS. Par exemple, exécuter SASS input.scss output.css à partir de votre terminal prendrait un seul fichier SASS, input.scss, et compilerait ce fichier en output.css.

Vous pouvez également surveiller des fichiers ou des répertoires individuels avec le drapeau --watch. Le drapeau de surveillance indique à SASS de surveiller vos fichiers source pour les modifications et de recompiler le CSS chaque fois que vous enregistrez votre SASS. Si vous vouliez surveiller (au lieu de créer manuellement) votre fichier input.scss, vous ajouteriez simplement le drapeau de surveillance à votre commande, comme suit :

sass --watch input.scss output.css

Vous pouvez regarder et sortir dans des répertoires en utilisant des chemins de dossier comme entrée et sortie, et en les séparant par deux-points. Dans cet exemple :

sass --watch app/sass:public/stylesheets

Sass surveillerait tous les fichiers du dossier app/sass pour les modifications et compilerait le CSS dans le dossier public/stylesheets.

Variables

Considérez les variables comme un moyen d'entreposer des informations que vous souhaitez réutiliser dans votre feuille de style. Vous pouvez entreposer des éléments tels que des couleurs, des piles de polices de caractères ou toute valeur CSS que vous pensez vouloir réutiliser. SASS utilise le symbole $ pour faire de quelque chose une variable. Voici un exemple :

SCSS SASS CSS
  1. $font-stack: Helvetica, sans-serif;
  2. $primary-color: #333;
  3.  
  4. body {
  5.   font: 100% $font-stack;
  6.   color: $primary-color;
  7. }
  1. $font-stack: Helvetica, sans-serif
  2. $primary-color: #333
  3.  
  4. body
  5.   font: 100% $font-stack
  6.   color: $primary-color
  1. body {
  2.   font: 100% Helvetica, sans-serif;
  3.   color: #333;
  4. }

Lorsque le SASS est traité, il prend les variables que nous définissons pour $font-stack et $primary-color et génère un CSS normal avec nos valeurs de variables placées dans le CSS. Cela peut être extrêmement puissant lorsque vous travaillez avec des couleurs de marque et en les gardant cohérentes sur tout le site.

Nidification

Lors de l'écriture de HTML, vous avez probablement remarqué qu'il a une hiérarchie imbriquée et visuelle claire. CSS, en revanche, ne le fait pas.

SASS vous permettra d'imbriquer vos sélecteurs CSS d'une manière suivant la même hiérarchie visuelle de votre HTML. Sachez que des règles trop imbriquées entraîneront un CSS surqualifié qui pourrait s'avérer difficile à maintenir et qui est généralement considéré comme une mauvaise pratique.

Dans cet esprit, voici un exemple de styles typiques pour la navigation d'un site :

SCSS SASS CSS
  1. nav {
  2.   ul {
  3.     margin: 0;
  4.     padding: 0;
  5.     list-style: none;
  6.   }
  7.  
  8.   li { display: inline-block; }
  9.  
  10.   a {
  11.     display: block;
  12.     padding: 6px 12px;
  13.     text-decoration: none;
  14.   }
  15. }
  1. nav
  2.   ul
  3.     margin: 0
  4.     padding: 0
  5.     list-style: none
  6.  
  7.   li
  8.     display: inline-block
  9.  
  10.   a
  11.     display: block
  12.     padding: 6px 12px
  13.     text-decoration: none
  14.  
  1. nav ul {
  2.   margin: 0;
  3.   padding: 0;
  4.   list-style: none;
  5. }
  6. nav li {
  7.   display: inline-block;
  8. }
  9. nav a {
  10.   display: block;
  11.   padding: 6px 12px;
  12.   text-decoration: none;
  13. }

Vous remarquerez que les sélecteurs ul, li et a sont imbriqués dans le sélecteur nav. C'est un excellent moyen d'organiser votre CSS et de le rendre plus lisible.

Partiels

Vous pouvez créer des fichiers SASS partiels contenant de petits extraits de CSS que vous pouvez inclure dans d'autres fichiers SASS. C'est un excellent moyen de modulariser votre CSS et de faciliter la maintenance. Un partiel est un fichier SASS nommé avec un trait de soulignement au début. Vous pourriez le nommer quelque chose comme _partial.scss. Le trait de soulignement permet à SASS de savoir que le fichier n'est qu'un fichier partiel et qu'il ne doit pas être généré dans un fichier CSS. Les partiels SASS sont utilisés avec la règle @use.

Modules

Vous n'êtes pas obligé d'écrire tous vos SASS dans un seul fichier. Vous pouvez le diviser comme vous le souhaitez avec la règle @use. Cette règle charge un autre fichier SASS en tant que module, ce qui signifie que vous pouvez faire référence à ses variables, mixins et fonctions dans votre fichier SASS avec un espace de noms basé sur le nom du fichier. L'utilisation d'un fichier inclura également le CSS qu'il génère dans votre sortie compilée !

SCSS SASS CSS
  1. // _base.scss
  2. $font-stack: Helvetica, sans-serif;
  3. $primary-color: #333;
  4.  
  5. body {
  6.   font: 100% $font-stack;
  7.   color: $primary-color;
  8. }

  1. // styles.scss
  2. @use 'base';
  3.  
  4. .inverse {
  5.   background-color: base.$primary-color;
  6.   color: white;
  7. }
  1. // _base.sass
  2. $font-stack: Helvetica, sans-serif
  3. $primary-color: #333
  4.  
  5. body
  6.   font: 100% $font-stack
  7.   color: $primary-color

  1. // styles.sass
  2. @use 'base'
  3.  
  4. .inverse
  5.   background-color: base.$primary-color
  6.   color: white
  1. body {
  2.   font: 100% Helvetica, sans-serif;
  3.   color: #333;
  4. }
  5.  
  6. .inverse {
  7.   background-color: #333;
  8.   color: white;
  9. }

Remarquez que nous utilisons @use 'base'; dans le fichier styles.scss. Lorsque vous utilisez un fichier, vous n'avez pas besoin d'inclure l'extension de fichier. Sass est intelligent et le découvrira pour vous.

Mixins

Certaines choses en CSS sont un peu fastidieuses à écrire, en particulier avec CSS3 et les nombreux préfixes de fournisseurs existant. Un mixin vous permet de créer des groupes de déclarations CSS que vous souhaitez réutiliser sur l'ensemble de votre site. Cela aide à garder votre SASS très propre. Vous pouvez même transmettre des valeurs pour rendre votre mixin plus flexible. Voici un exemple de thème.

SCSS SASS CSS
  1. @mixin theme($theme: DarkGray) {
  2.   background: $theme;
  3.   box-shadow: 0 0 1px rgba($theme, .25);
  4.   color: #fff;
  5. }
  6.  
  7. .info {
  8.   @include theme;
  9. }
  10. .alert {
  11.   @include theme($theme: DarkRed);
  12. }
  13. .success {
  14.   @include theme($theme: DarkGreen);
  15. }
  1. @mixin theme($theme: DarkGray)
  2.   background: $theme
  3.   box-shadow: 0 0 1px rgba($theme, .25)
  4.   color: #fff
  5.  
  6. .info
  7.   @include theme
  8.  
  9. .alert
  10.   @include theme($theme: DarkRed)
  11.  
  12. .success
  13.   @include theme($theme: DarkGreen)
  1. .info {
  2.   background: DarkGray;
  3.   box-shadow: 0 0 1px rgba(169, 169, 169, 0.25);
  4.   color: #fff;
  5. }
  6.  
  7. .alert {
  8.   background: DarkRed;
  9.   box-shadow: 0 0 1px rgba(139, 0, 0, 0.25);
  10.   color: #fff;
  11. }
  12.  
  13. .success {
  14.   background: DarkGreen;
  15.   box-shadow: 0 0 1px rgba(0, 100, 0, 0.25);
  16.   color: #fff;
  17. }

Pour créer un mixin, utilisez la directive @mixin et donnez-lui un nom. Nous avons nommé notre thème mixin. Nous utilisons également la variable $theme entre parenthèses afin de pouvoir passer un thème de ce que nous voulons. Après avoir créé votre mixin, vous pouvez l'utiliser comme déclaration CSS commençant par @include suivi du nom du mixin.

Extension/Héritage

L'utilisation de @extend vous permet de partager un ensemble de propriétés CSS d'un sélecteur à un autre. Dans notre exemple, nous allons créer une simple série de messages pour les erreurs, les avertissements et les réussites en utilisant une autre fonctionnalité allant de pair avec les classes d'espace réservé étendues. Une classe d'espace réservé est un type spécial de classe ne s'affichant que lorsqu'elle est étendue et peut aider à garder votre CSS compilé propre.

SCSS SASS CSS
  1. /* Ce CSS s'affichera car %message-shared est étendu. */
  2. %message-shared {
  3.   border: 1px solid #ccc;
  4.   padding: 10px;
  5.   color: #333;
  6. }
  7.  
  8. // Ce CSS ne s'affichera pas car %equal-heights n'est jamais étendu.
  9. %equal-heights {
  10.   display: flex;
  11.   flex-wrap: wrap;
  12. }
  13.  
  14. .message {
  15.   @extend %message-shared;
  16. }
  17.  
  18. .success {
  19.   @extend %message-shared;
  20.   border-color: green;
  21. }
  22.  
  23. .error {
  24.   @extend %message-shared;
  25.   border-color: red;
  26. }
  27.  
  28. .warning {
  29.   @extend %message-shared;
  30.   border-color: yellow;
  31. }
  1. /* Ce CSS s'affichera car %message-shared est étendu. */
  2. %message-shared
  3.   border: 1px solid #ccc
  4.   padding: 10px
  5.   color: #333
  6.  
  7.  
  8. // Ce CSS ne s'affichera pas car %equal-heights n'est jamais étendu.
  9. %equal-heights
  10.   display: flex
  11.   flex-wrap: wrap
  12.  
  13.  
  14. .message
  15.   @extend %message-shared
  16.  
  17.  
  18. .success
  19.   @extend %message-shared
  20.   border-color: green
  21.  
  22.  
  23. .error
  24.   @extend %message-shared
  25.   border-color: red
  26.  
  27.  
  28. .warning
  29.   @extend %message-shared
  30.   border-color: yellow
  1. /* Ce CSS s'affichera car %message-shared est étendu. */
  2. .message, .success, .error, .warning {
  3.   border: 1px solid #ccc;
  4.   padding: 10px;
  5.   color: #333;
  6. }
  7.  
  8. .success {
  9.   border-color: green;
  10. }
  11.  
  12. .error {
  13.   border-color: red;
  14. }
  15.  
  16. .warning {
  17.   border-color: yellow;
  18. }

Le code ci-dessus indique à .message, .success, .error et .warning de se comporter comme %message-shared. Cela signifie que partout où %message-shared apparaît, .message, .success, .error et .warning le seront aussi. La magie opère dans le CSS généré, où chacune de ces classes obtiendra les mêmes propriétés CSS que %message-shared. Cela vous évite d'avoir à écrire plusieurs noms de classe sur les éléments HTML.

Vous pouvez étendre la plupart des sélecteurs CSS simples en plus des classes d'espace réservé dans SASS, mais l'utilisation d'espaces réservés est le moyen le plus simple de vous assurer que vous n'étendez pas une classe imbriquée ailleurs dans vos styles, ce qui peut entraîner des sélecteurs involontaires dans votre CSS.

Notez que le CSS dans %equal-heights n'est pas généré, car %equal-heights n'est jamais étendu.

Les opérateurs

Faire des mathématiques dans votre CSS est très utile. SASS a une poignée d'opérateurs mathématiques standard comme +, -, *, math.div() et %. Dans notre exemple, nous allons faire quelques calculs simples pour calculer les largeurs d'un article et de côté :

SCSS SASS CSS
  1. @use "sass:math";
  2.  
  3. .container {
  4.   display: flex;
  5. }
  6.  
  7. article[role="main"] {
  8.   width: math.div(600px, 960px) * 100%;
  9. }
  10.  
  11. aside[role="complementary"] {
  12.   width: math.div(300px, 960px) * 100%;
  13.   margin-left: auto;
  14. }
  1. @use "sass:math"
  2.  
  3. .container
  4.   display: flex
  5.  
  6. article[role="main"]
  7.   width: math.div(600px, 960px) * 100%
  8.  
  9. aside[role="complementary"]
  10.   width: math.div(300px, 960px) * 100%
  11.   margin-left: auto
  1. .container {
  2.   display: flex;
  3. }
  4.  
  5. article[role="main"] {
  6.   width: 62.5%;
  7. }
  8.  
  9. aside[role="complementary"] {
  10.   width: 31.25%;
  11.   margin-left: auto;
  12. }

Nous avons créé une grille fluide très simple, basée sur 960px. Les opérations dans SASS nous permettent de faire quelque chose comme prendre des valeurs de pixels et les convertir en pourcentages sans trop de tracas.



PARTAGER CETTE PAGE SUR
Dernière mise à jour : Vendredi, le 26 mai 2023