W3docs

Propriété CSS outline-offset

La propriété CSS outline-offset définit l'espace entre le contour et la bordure d'un élément. Découvrez ses valeurs et des exemples.

La propriété outline-offset spécifie la quantité d'espace entre le contour d'un élément et son bord de bordure. L'espace ajouté par outline-offset est toujours transparent, ce qui permet au fond de la page (ou à ce qui se trouve derrière l'élément) d'apparaître à travers l'écart.

Cette page explique ce que fait outline-offset, comment se comportent les valeurs positives et négatives, quand l'utiliser, et les pièges à éviter.

Différences entre les contours et les bordures

outline-offset n'a de sens que si vous comprenez comment les contours se comportent, car ils fonctionnent très différemment des bordures :

  • Un contour est dessiné à l'extérieur du bord de bordure de l'élément — par défaut, il est aligné contre la bordure.
  • Un contour ne prend pas de place dans la mise en page, donc l'ajouter ou le décaler ne déplace jamais les éléments environnants.
  • Un contour peut être non rectangulaire (par exemple, il enveloppe chaque ligne d'un élément en ligne sur plusieurs lignes).

Comme un contour n'affecte pas la mise en page, outline-offset est un moyen sûr d'éloigner le contour de l'élément (ou de le rapprocher) sans recalculer le flux de la page. Cette propriété fait partie des propriétés CSS3.

Elle ne fait pas partie de la propriété raccourcie outline. Contrairement à outline-style, outline-color et outline-width, outline-offset doit toujours être défini comme sa propre déclaration.

Valeur initiale0
S'applique àTous les éléments.
HéritéeNon.
AnimableOui. La largeur de l'espace est animable.
VersionCSS3
Syntaxe DOMobject.style.outlineOffset = "20px";

Syntaxe

Syntaxe CSS outline-offset

outline-offset: length | initial | inherit;

Exemple de la propriété outline-offset :

Exemple de code CSS outline-offset

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      div.ex1 {
        margin: 20px;
        border: 2px dotted #000;
        background-color: #8ebf42;
        outline: 4px solid #666;
        outline-offset: 10px;
      }
    </style>
  </head>
  <body>
    <h2>Outline-offset property example</h2>
    <div class="ex1">The outline-offset is 10px</div>
  </body>
</html>

Résultat

Liste des valeurs CSS outline-offset

Dans l'exemple ci-dessus, l'espace entre le contour et la bordure est de 10px, et le fond de la page apparaît à travers cet écart transparent.

Valeurs négatives

outline-offset accepte également des longueurs négatives. Un décalage négatif tire le contour vers l'intérieur, de sorte qu'il est dessiné sur le rembourrage/contenu de l'élément plutôt qu'autour de lui :

outline-offset: -5px; /* outline moves 5px inside the border edge */

C'est utile lorsque vous voulez un anneau de focus qui se trouve à l'intérieur d'un élément très compact (par exemple, un bouton accolé au bord d'un conteneur) sans que le contour soit rogné par un ancêtre avec overflow: hidden. Un décalage négatif plus grand que l'élément fait s'effondrer et disparaître le contour.

Quand l'utiliser

  • Anneaux de focus espacés. Associez :focus-visible à un petit décalage positif pour que l'anneau de focus clavier ne serre pas l'élément de trop près. Ne supprimez jamais le contour entièrement sans en fournir un remplaçant — c'est la principale aide pour les utilisateurs au clavier.
  • Effets décoratifs de « double bordure » sans ajouter un second élément, car l'écart du décalage révèle l'arrière-plan.
  • Éviter les anneaux rognés à l'intérieur des conteneurs à défilement, en utilisant un petit décalage négatif.

Valeurs

ValeurDescription
lengthEspace entre le contour et le bord de bordure d'un élément. Peut être négatif pour dessiner le contour à l'intérieur du bord de bordure. La valeur par défaut est 0.
initialDéfinit la propriété à sa valeur par défaut.
inheritHérite de la propriété de son élément parent.

Points à retenir

  • outline-offset n'est pas hérité — les enfants ne le récupèrent pas automatiquement.
  • Les pourcentages ne sont pas autorisés ; seules les unités de longueur (px, em, rem, etc.) fonctionnent.
  • Le décalage ne s'affiche que lorsqu'un contour est réellement visible, c'est-à-dire lorsque outline-style n'est pas none et que la largeur est supérieure à zéro.
  • L'écart est transparent — outline-offset ne peut pas avoir sa propre couleur.

Pratique

Pratique
Qu'est-ce qui peut être dit à propos de la propriété CSS outline-offset selon les informations fournies dans l'URL donnée ?
Qu'est-ce qui peut être dit à propos de la propriété CSS outline-offset selon les informations fournies dans l'URL donnée ?
Was this page helpful?