Vous pouvez me contacter via Facebook pour questions & suggestions :
Page Facebook relative à mon site
Une nouvelle méthode pour coder les couleurs apparait avec le CSS3. Il s'agit du HSL (Hue, Saturation, Lightness). Traduisez en français TSL (Teinte, Saturation, Luminosité).
Les deux autres paramètres sont constants ; saturation : 100% et luminosité : 50%.
| valeur de la teinte (en degrés) | Aperçu |
|---|---|
| 0 | |
| 20 | |
| 40 | |
| 60 | |
| 80 | |
| 100 | |
| 120 | |
| 140 | |
| 160 | |
| 180 | |
| 200 | |
| 220 | |
| 240 | |
| 260 | |
| 280 | |
| 300 | |
| 320 | |
| 340 | |
| 360 |
On obtient toutes les couleurs sauf le noir, le gris et le blanc.
Extrait du code correspondant au tableau :
Notez bien la syntaxe de la fonction hsl.
Le premier argument est exprimé en degrés mais cette unité n'est pas précisée. Les deux autres paramètres sont des pourcentages ;
un nombre décimal n'est pas admis !
Le premier argument est 60° (teinte : jaune) et le troisième argument est 50%.
| saturation | Aperçu |
|---|---|
| 0% | |
| 20% | |
| 40% | |
| 60% | |
| 80% | |
| 100% |
On obtient du gris (première ligne) et des couleurs plus ou moins grisées pour arriver à un jaune éclatant (dernière ligne).
Le premier paramètre vaut 120° (vert clair) et la saturation est toujours de 100%.
| Luminosité | Aperçu |
|---|---|
| 0% | |
| 20% | |
| 40% | |
| 60% | |
| 80% | |
| 100% |
On obtient des nuances de vert mais surtout du noir et du blanc pour les valeurs extrèmes de luminosité.
La teinte est constante : 240° (bleu); la saturation est toujours de 100%.
| Luminosité | Aperçu |
|---|---|
| 0% | |
| 25% | |
| 50% | |
| 75% | |
| 100% |
On obtient des nuances de bleu mais toujours du noir et du blanc pour luminosité valant 0% et 100%/
Donc pour obtenir du noir il suffit que le troisième argument soit à 0%.
Pour obtenir du blanc il suffit que la luminosité soit à 100%.
Pour passer de la notation HSL à la notation HSLA il suffit d'utiliser la fonction hsla() et de rajouter un quatrième argument : l'alpha qui est exprimé sous forme d'un nombre décimal compris entre 0 et 1.
Boite remplie via la notation HSLA
Notez la syntaxe ... background : hsla(60,100%,50%,0.2);.
La valeur de l'argument alpha est 0.2 donc une très grande transparence du fond.
Notez cependant que le texte dans la boite est quant à lui bien opaque ...
Je vous propose une application pour obtenir le code HSL à partir d'une palette.
Ouvrez cette page et ajoutez la à vos favoris !
Dans un premier temps ne déplacez que le premier curseur (déplacement dans le cercle chromatique).
Un formulaire HTML5 avec les nouveaux champs de type range !
On peut dériver la notation RGB en RGBA ainsi que la notation HSL en HSLA.
Il suffit de rajouter un quatrième argument sous forme d'un décimal compris entre 0 et 1.
Il faut utiliser les fonctions rgba() ou hsla() à la place de rgb() et hsl().
Boîte avec un fond jaune transparent
Boîte avec un fond jaune transparent
Boîte avec un fond jaune transparent
Boîte avec un fond jaune transparent
Les quatre boites sont remplies avec un fond jaune très transparent.
Dans les boites de gauche le texte est très transparent pratiquement illisible ...
Par contre pour les boites de droite le texte est bien opaque.
Le code CSS :
.boite{display : inline-block ; width : 40% ; height : 200px ; margin : 1% ; }
#fond1{background-color : rgb(255,255,0) ; opacity : 0.2 ;}
#fond2 {background-color : rgba(255,255,0,0.2)}
#fond3{background-color : hsl(60,100%,50% ; opacity :0.2 }
#fond4{background-color : hsla(60,100%,50%,0.2) }
p.titre{color: black ; font-size : 20px; text-align : center; }
Le code HTML :
Pour deux boites positionnées à gauche, la transparence du fond est règlée grâce à la propriété opacity.
Pour les deux boites positionnées à droite, la transparence du fond est assurée par le quatrième argument des fonctions
rgba() ou hsla().
La propriété opacity présente un inconvénient : la transparence s'applique non seulement à la couleur de fond mais aussi au texte de l'élément.
Si vous utilisez currentColor pour définir la couleur d'une bordure, d'un arrière-plan ou d'une ombre,
cette propriété adoptera automatiquement la même couleur que le texte de cet élément.
Ce mot clé fonctionne donc tel une variable.
Il y a homogénéité dans la présentation : texte, bordure & ombrage en indigo.
Survolez la boite : tout passe en rouge !
Cliquez dans la boite : tout passe en vert olive !
Le CSS :
.maboite {color: indigo; border: 5px solid currentColor;
box-shadow: 5px 5px 5px currentColor; text-align : center;
width : 50%; margin : 10px auto; padding : 10px}
.maboite:hover {color : red; }
.maboite:active {color : olive;}
La couleur de l'ombre et de la bordure sera toujours identique à la couleur du texte pour le même élément.
Le HTLM :
On ne peut plus simple.
Si je n'avais pas utilisé le mot clé 'currentColor' j'aurais du écrire :
.maboite {color: indigo; border: 5px solid indigo; box-shadow: 5px 5px 5px indigo;
width : 50%; margin : 10px auto; padding : 10px}
.maboite:hover {color : red; border: 5px solid red; box-shadow: 5px 5px 5px red;}
.maboite:active {color : olive; border: 5px solid olive; box-shadow: 5px 5px 5px olive;}
Donc l'emploi du mot "currentColor" pour la règle de style principale simplifie la syntaxe des règles de style dépendantes.