Le raccourci border
border trace une ligne autour d'un élément, entre son padding et sa margin. Le raccourci prend trois parties dans n'importe quel ordre : une épaisseur, un style et une couleur.
| Partie | Propriété détaillée | Valeurs | Par défaut |
|---|---|---|---|
| Épaisseur | border-width | 1px, 0.2em, thin, medium, thick | medium |
| Style | border-style | solid, dashed, dotted, double, et d'autres | none |
| Couleur | border-color | N'importe quelle couleur | currentColor (la couleur du texte) |
Le style est la partie que vous ne pouvez pas omettre. Sa valeur par défaut est none, donc border: 2px #2563eb; ne dessine rien du tout. Si vous omettez la couleur, la bordure prend la couleur du texte de l'élément.
Les styles de bordure
double a besoin d'au moins 3px pour montrer deux lignes. groove, ridge, inset et outset nuancent la couleur pour un effet 3D et varient légèrement d'un navigateur à l'autre. hidden ressemble à none ; les deux ne diffèrent que dans les tableaux aux bordures fusionnées, traités sur la page des bordures de tableau HTML.
Un côté à la fois
Chaque côté a son propre raccourci (border-top, border-right, border-bottom, border-left), et chaque partie a des propriétés par côté comme border-top-color. Les versions logiques, border-inline-start et border-block-end, suivent le sens du texte :
border-color, border-width et border-style acceptent de une à quatre valeurs, dans le même ordre horaire que padding : haut, droite, bas, gauche.
Coins arrondis avec border-radius
border-radius arrondit les coins de la bordure et du fond, il fonctionne donc sur des éléments sans aucune bordure.
| Valeur | Résultat |
|---|---|
border-radius: 8px | Tous les coins arrondis de 8px |
border-radius: 50% | Un cercle sur un élément carré, une ellipse sur un rectangle |
border-radius: 999px | Une pilule : les petits côtés deviennent des demi-cercles complets |
border-radius: 8px 0 | En haut à gauche et en bas à droite 8px, les deux autres carrés |
border-top-left-radius: 12px | Un seul coin |
border-radius: 50% / 25% | Coins elliptiques : rayon horizontal / rayon vertical |
Un enfant qui a un fond peut dépasser des coins arrondis de son parent. overflow: hidden sur le parent le découpe selon la courbe.
Border ou outline
Un outline ressemble à une bordure, mais il est dessiné à l'extérieur et ne prend pas de place : en ajouter un ne déplace jamais rien. C'est pourquoi les navigateurs utilisent les outlines pour les indicateurs de focus.
| Border | Outline | |
|---|---|---|
| Prend de la place | Oui, fait partie de la taille de la boîte | Non |
| Par côté | Oui (border-top, ...) | Non, tout autour |
Suit border-radius | Oui | Oui, dans les navigateurs actuels |
| Décalage par rapport à la boîte | Non | Oui, outline-offset |
| Usage typique | Design | Indicateurs de focus, débogage |
Erreurs courantes
- Pas de style de bordure.
border: 1px #111827;etborder-color: red;ne dessinent rien. Ajoutezsolid(ou un autre style). - Une bordure qui fait sauter la mise en page au survol. Réservez l'espace avec une bordure transparente, ou utilisez un outline ou
box-shadow. - Oublier la bordure dans la largeur. Un élément
width: 100%avec une bordure déborde de son conteneur encontent-box. Utilisezbox-sizing: border-box. border-radiusavec un enfant qui dépasse des coins. Ajoutezoverflow: hiddenau parent arrondi.- Supprimer les contours de focus avec
outline: none. Les utilisateurs du clavier en ont besoin ; restylez l'outline au lieu de le supprimer.
Questions fréquentes
Comment ajouter une bordure en CSS ?
Utilisez le raccourci avec une épaisseur, un style et une couleur : border: 2px solid #2563eb;. Le style est la partie la plus importante : sans lui, le style de bordure vaut none et aucune bordure n'est dessinée.
Pourquoi ma bordure CSS ne s'affiche-t-elle pas ?
Presque toujours parce qu'aucun style de bordure n'est défini. border: 2px #2563eb; ou border-color: red; seuls ne dessinent rien, puisque border-style vaut none par défaut. Ajoutez solid, dashed ou un autre style.
Comment faire des coins arrondis en CSS ?
Utilisez border-radius : border-radius: 8px; arrondit les quatre coins. border-radius: 50%; sur un carré donne un cercle, et une grande valeur comme 999px une forme de pilule. Le fond est arrondi aussi, même sans bordure.
Comment mettre une bordure sur un seul côté ?
Utilisez une propriété de côté : border-bottom: 2px solid #e5e7eb;, ou border-inline-start pour le côté où commence le texte, qui fonctionne aussi pour les langues écrites de droite à gauche.
Quelle est la différence entre border et outline ?
Une bordure fait partie de la boîte : elle prend de la place et modifie la taille de l'élément. Un outline est dessiné à l'extérieur de la bordure sans prendre de place, ne peut pas être défini côté par côté, et c'est ce que les navigateurs utilisent pour les indicateurs de focus. Les deux suivent border-radius dans les navigateurs actuels.