Les couleurs
Les couleurs peuvent s’appliquer en css à plusieurs éléments avec les propriétés suivantes :
background-color ou background pour le fond ou autrement dit la couleur d’arrière-plan
color pour la couleur du text
border-color ou border* (*avec autres valeurs)
*Pour les svg : stroke (couleur du contour) fill (couleur de remplissage)
Pour le choix de la couleur on peut utiliser comme valeur différents format de choix de couleur :
#RRVVBB = hexadecimal format à préconiser la plupart du temps
peut être raccourci pour les couleurs ayant pour la même lettre la même valeur p.ex un rouge : #f35 = #FF3355
*depuis peu, on peut ajouter aussi la transparence à la fin mais c’est pas easy à lire#ff335575 = 75% opacité préféré le rgba
rgb(RRR,VVV,BBB) & rgba(RRR,VVV,BBB,AA) = format à préconiser quand il y a de la transparence = plus facile à lire
red black tomato : nom de la couleur. Éviter ce format il n’est pas précis et peut être réinterprété par le navigateur
h1 {
color: #005B86;
background-color: rgba(0,0,0,0.5);
/* bordure */
border-width: 0.08em;
border-style: dotted;
border-color:#f38
}
div.frame {
background: lightyellow; /* = background-color raccourcie */
color: #111;
/* bordure raccourcie */
border: 1px solid rgb(230, 50, 30);
}
/* pour les svg */
svg path{
stroke:#f00;
fill:rgba(0,255,12,.8);
}Unités et dimensions
Il y a 2 catégories d’unité qu’on utilise sur le web. Les unités figées et les unités relatives.
Pour les unités figées : px (pixel) ou cm (centimètres) ou mm (millimètres) mais aussi deg (degrés pour les rotations). Nous n’utilisons plus trop les unités en pixel depuis que les sites doivent s’adapter aux écrans. Ces unités sont figées, c’est-à-dire qu’elles ne dépendent pas d’autres éléments externes. 16px seront toujours 16px, sur un mobile comme sur un écran 5k.
Les unités (ou dimensions) relatives : dépendent des dimensions d’un autre élément de référence. De ce fait, elles vont s’adapter en fonction de cet élément de référence.
% (pourcentage) = 0-100% de la taille du parent
em & rem (emphemeral unit / root empheral unit) : Dimensions relatives à la taille de la police de l’élément
a) parent = em (pour les marges intérieures (padding) ou extérieures (margin)
b) racine = rem (tout le reste) => la + utilisée, celle a préconiser
consultez cet excellent article qui explique les em & rem vw & vh (viewport width / viewport height) : Dimension relative à la taille de la partie visible dans la fenêtre du navigateur
En résumé : px = dimension figée => à éviterem & = dimension relative à la taille de police (em pour parent) rem pour taille de police définie dans html (16px par défaut) => préconiser remrem% = pourcentage => pratique pour le flex = mettre des élément côte à côte (qu’on étudiera plus tard) vw & vh = dimension relative à la taille de l’écran (on utilise peu vh mais pas mal vw)
Largeur et hauteur
width = (avec un d sinon ça veut dire avec) précise et force la largeur d’un élémentheight = précise et force la hauteur d’un élément. ⚠️ en général, on ne force pas la largeur d’un élément, il prends la place dont il a besoin. Forcer la hauteur peut provoquer des chevauchements intempestifs.
Les max-width et min-width | max-height et min-height
Permet de déterminer une largueur ou hauteur minimum / maximum pour les blocs. Hyper pratique pour que les blocs de taille fluide ne soit pas trop petits ou trop grand. Ou pour occuper min-height:100vh afin de forcer une section à 100% du viewport
Le ratio largeur / hauteur
.gallery figure{
aspect-ratio:16 / 9;
}aspect-ratio: auto | 1 | 16 / 9 | 4 / 3
La propriété aspect-ratio permet de forcer un ratio largeur hauteur d’un bloc. S’utilise généralement sur les images ou les figure contenant une image. Ne l’utilisez pas sur d’autres bloc.
Espacements ou marges
Il existe 2 types de marges : internes et externes. Elles ont les 2 des sous-propriétés si on ne veut agir que sur une seule ou forcer une au l’autre.
margin = marges externes
margin-top
margin-right
margin-bottom
margin-left
margin-left et margin-right acceptent aussi la valeur auto => pousse le plus possible dans la direction inverse. Si margin-left et margin-right sont auto, et que l’élément a une taille, il sera centré
ainsi :
.blog article{
margin 2em auto; /* centre le block */
}padding = marges interne
padding-top
padding-right
padding-bottom
padding-left
Les propriétés margin et padding sont un raccourci des 4 autres et il existe plusieurs manières de l’écrire :
header{
margin: 2rem; /* marge ext. de 2*16px partout */
}
main{
margin: 2rem 3vw; /* marge ext. de 2*16px en haut et bas et 3% du viewport width à gauche et droite */
}
main article{
margin: 1rem 1.8rem. 1.5rem 3rem;
/* marge ext. ⬆️top ➡️ droite ⬇️ bas ⬅️ gauche
(sens des aiguilles d'une montre 🕑) */
}Idem pour padding (marges internes)
header{
padding: 1.2rem; /* marges internes de 1.2*16px partout */
}
main{
padding: 1.23rem 2.5vw; /* marges internes de 1.23*16px en haut et bas et 2.5% du viewport width à gauche et droite */
}
main article{
padding: 1rem 1.8rem 1.5rem 3rem;
/* marges internes ⬆️top ➡️ droite ⬇️ bas ⬅️ gauche
(sens des aiguilles d'une montre 🕑) */
}
footer{
margin: 1rem; /* marge idem partout */
margin-top: 2rem; /* force la marge du haut à 2rem */
padding : .5rem /* marge interne idem partout */
padding-left: 1rem; /* force la marge interne à gauche */
padding-bottom: .8rem /* force la marge interne en bas */
/* pour le padding on aurait du écrire pour le même résultat */
padding : .5rem .5rem .8rem 1rem; /* sens des aiguilles */
}
Propriétés liées au texte
h2{
font-family : "Nom_De_La_Typo", Helvetica, Arial, Verdana, sans-serif;
}font-family
détermine la police du texte.
h1{
font-size : 2rem
}font-size: 1rem;
détermine la taille du texte.
on utilise des rem si possible
on peut aussi utiliser font-size: clamp(16px,3vw,3rem)= miniumum 16px, 3vw (essaye), mais max 3rem)
h1{
line-height : 1.12
}line-height: 1.2;
permet de spécifier la hauteur d’une ligne de texte et donc aussi de gérer l’espace entre les lignes (généralement utilisé sans unité, donc basé sur le font-size
h3{
font-weight:bold;
}font-weight: normal(400) | bold (800) | 300 (light)
épaisseur de la police (plus ou moins gras). On peut spécifier la valeur bold pour rendre gras, ou une valeur entre 100 et 900 pour avoir plus de contrôle sur l’épaisseur. ⚠️ (chaque graisse doit être loadé avec un @font-face)
h3{
font-style:italic;
}font-style : normal | italic
permet de forcé l’italique ou de l’annuler ⚠️ (chaque style doit être loadé)
p#copyright{
color:#ddd;
}color : rgba(221,221,221,1)
couleur du texte
p#copyright{
text-align: right;
}text-align : left | center | right | justify
Alignement du texte dans un bloc
h1{
text-transform: uppercase;
}text-transform : uppercase | lowercase | capitalize | none
Modifier la « capitalisation » ( Majuscule Minuscule ) d’un bloc texte
nav a{
text-decoration: none;
}text-decoration : none | underline | line-through | overline
Modifier les décorations linéaires d’un mot par exemple si le mot est souligné ou barré, etc…
h1{
text-shadow: 0 0 .2em #000;
}text-shadow : x y flou couleur
Créer une ombre portée sous le texte
Les bordures
Les propriétés border en CSS permettent de définir les bordures des éléments HTML. Elles sont composées de trois propriétés principales :
.blog article{
border-width:0.08rem;
border-style:solid;
border-color:#777;
}border-width : définit l’épaisseur de la bordure, en rem ou em ou en px.
border-style : définit le style de la bordure, parmi les valeurs suivantes : solid : bordure pleine, dashed : bordure traitillé, dotted : bordure en pointilléedouble : bordure double ligneborder-color : définit la couleur de la bordure.
.blog article{
border:0.08rem solid #777;
}border : width style couleur;
En règle général, on utilise la propriété raccourcie border qui permet de définir les trois propriétés border-width, border-style et border-color en une seule propriété.
.blog article{
border-radius:1.2rem;
}border-radius : xrem | xem | xpx | x% | xvw | xvh
Permet de définir des coins arrondis pour la bordure d’un élément
il existe pour chaque coin une propriétéborder-top-left-radius , border-top-right-radius , border-bottom-right-radius , border-bottom-left-radius
C’est tout pour l’instant : affaire à suivre …