Besoin d’ajouter une bordure à un élément en CSS ? C’est une des bases, mais il y a quelques détails à connaître.
Ce guide vous explique comment utiliser la propriété `border` avec des exemples de code simples à copier-coller.
Exemples de la propriété `border` en action
Pour comprendre rapidement, le plus simple est de voir directement le code. La propriété `border` peut s’utiliser de plusieurs manières.
Voici quelques exemples courants pour vous faire une idée :
Chaque ligne définit une bordure différente :
border: solid;: Crée une bordure simple et pleine. La couleur sera celle du texte et l’épaisseur sera moyenne par défaut.border: dashed red;: Affiche une bordure en tirets de couleur rouge.border: 1rem solid;: Définit une bordure pleine de 1rem d’épaisseur.border: thick double #32a1ce;: Applique une bordure double, épaisse et d’une couleur bleue spécifique.border: 4mm ridge rgb(211 220 50 / 0.6);: Produit une bordure avec un effet 3D en relief (ridge) de 4mm.
Comprendre la syntaxe de `border`
La propriété `border` est ce qu’on appelle une **propriété raccourcie** (shorthand). C’est un moyen rapide de définir plusieurs propriétés en une seule ligne.
Elle regroupe trois aspects de la bordure :
border-width: l’épaisseur.border-style: le style (plein, tirets, etc.).border-color: la couleur.
Vous pouvez fournir une, deux ou trois de ces valeurs. L’ordre n’a pas d’importance. Mais attention, si `border-style` n’est pas défini, la bordure n’apparaîtra pas, car sa valeur par défaut est `none`.
Voici comment les combinaisons fonctionnent :
Les 3 propriétés qui composent une bordure CSS
Pour bien maîtriser les bordures, il faut connaître les valeurs possibles pour chaque sous-propriété.
L’épaisseur de la bordure : `border-width`
Pour définir la largeur, vous avez deux options : utiliser des mots-clés ou des unités de longueur précises.
- Mots-clés :
thin(fin),medium(moyen, la valeur par défaut), etthick(épais). - Unités de longueur : N’importe quelle unité CSS valide fonctionne, comme `px`, `rem`, `em` ou `mm`. C’est la méthode la plus courante pour un contrôle précis.
Le style de la bordure : `border-style`
C’est la propriété la plus importante, car sans elle, rien ne s’affiche. Le style par défaut est `none`.
Voici la liste des styles disponibles :
dotted: une bordure en pointillés.dashed: une bordure en tirets.solid: une bordure pleine et continue. C’est le style le plus utilisé.double: une bordure composée de deux lignes pleines.groove: un effet 3D qui donne l’impression que la bordure est gravée en creux.ridge: l’inverse de `groove`, un effet 3D qui donne l’impression que la bordure est en relief.inset: un effet 3D qui donne l’impression que l’élément est incrusté dans la page.outset: l’inverse de `inset`, l’élément semble sortir de la page.none: aucune bordure. C’est la valeur par défaut.hidden: identique à `none`, mais utile dans les tableaux pour résoudre des conflits de bordures.
Note sur les styles 3D : L’effet visuel des styles `groove`, `ridge`, `inset` et `outset` dépend de la `border-color`. Les ombres et lumières qui créent l’effet 3D sont calculées à partir de cette couleur.
Les combinaisons les plus fréquentes sont : `dotted dashed`, `dashed solid`, `solid double`, `double groove`, `groove ridge`, `ridge inset`, et `inset outset`.
La couleur de la bordure : `border-color`
Vous pouvez utiliser n’importe quelle valeur de couleur valide en CSS.
- Noms de couleur :
red,blue,green, etc. - Codes hexadécimaux :
#ff3333,#32a1ce. - Fonctions RGB/RGBA :
rgb(211 220 50 / 0.6).
Point important : si vous ne spécifiez pas de couleur, la bordure prendra par défaut la valeur `currentColor`. Cela signifie qu’elle aura la même couleur que le texte (`color`) de l’élément.
Exemple d’application concret
Mettons tout ça en pratique. Imaginez que vous ayez un simple `div` dans votre page HTML.
Maintenant, appliquons un peu de style pour voir l’effet de `border` combiné à d’autres propriétés.
Le résultat est une boîte avec une bordure rose en relief (`outset`), un contour kaki et une ombre portée bleue. Cet exemple montre comment `border` s’intègre avec d’autres styles pour créer des designs plus complexes.
Concepts avancés et propriétés associées
La propriété `border` est simple, mais l’écosystème CSS autour des bordures est plus large. Voici quelques notions utiles.
Différences entre `border` et `outline`
On confond souvent la bordure (`border`) et le contour (`outline`). Ils se ressemblent mais ont des différences clés :
- L’
outlinene prend pas de place. Ajouter un `outline` ne décalera pas les autres éléments de la page, alors qu’une `border` oui. - L’
outlineest dessiné par-dessus l’élément, à l’extérieur. - L’
outlinen’est pas obligé d’être rectangulaire.
Gérer les bordures de chaque côté
La propriété `border` applique le même style à tous les côtés. Si vous voulez des bordures différentes pour chaque côté, vous devez utiliser des propriétés plus spécifiques.
Par exemple :
border-top: pour la bordure du haut.border-right-color: pour la couleur de la bordure droite.border-bottom-style: pour le style de la bordure du bas.border-left-width: pour l’épaisseur de la bordure gauche.
Les valeurs globales
Comme beaucoup de propriétés CSS, `border` accepte des valeurs globales qui modifient son comportement par rapport à l’héritage.
inherit: L’élément hérite des propriétés de bordure de son parent.initial: Réinitialise la bordure à sa valeur par défaut du navigateur.revert: Annule le style appliqué pour revenir au style précédent.revert-layer: Utile avec les `@layer` pour annuler les styles d’une couche.unset: Agit comme `inherit` si la propriété est héritée, sinon comme `initial`.
Par exemple, les combinaisons `inherit initial revert revert` ou `initial revert revert layer` et `revert revert layer unset` permettent des contrôles fins sur la cascade des styles.
Définition technique de la propriété `border`
Pour les plus techniques, voici un résumé des caractéristiques formelles de la propriété `border`, comme on les trouve dans la documentation.
- Valeur initiale : la largeur est `medium`, le style est `none`, la couleur est `currentColor`. Il n’y a donc pas de bordure visible par défaut.
- S’applique à : tous les éléments, ainsi qu’au pseudo-élément `::first-letter`.
- Héritée : non. Un `div` ne transmet pas sa bordure à ses paragraphes enfants.
- Type d’animation : la largeur (`border-width`) et la couleur (`border-color`) sont animables. En revanche, le style (`border-style`) ne l’est pas, son changement est instantané (discret).
Ces détails techniques sont issus de la spécification officielle CSS `backgrounds and borders module level 3`.
