W3docs

Proprietà CSS outline-offset

La proprietà CSS outline-offset definisce lo spazio tra il contorno e il bordo di un elemento. Scopri i valori e gli esempi.

La proprietà outline-offset specifica la quantità di spazio tra il contorno di un elemento e il suo bordo. Lo spazio aggiunto da outline-offset è sempre trasparente, quindi lo sfondo della pagina (o qualsiasi cosa si trovi dietro l'elemento) è visibile attraverso il gap.

Questa pagina illustra cosa fa outline-offset, come si comportano i valori positivi e negativi, quando è utile usarla e gli aspetti da tenere a mente.

Come i contorni differiscono dai bordi

outline-offset ha senso solo quando si capisce come funzionano i contorni, poiché si comportano in modo molto diverso dai bordi:

  • Un contorno viene disegnato all'esterno del bordo dell'elemento — per impostazione predefinita è adiacente al bordo.
  • Un contorno non occupa spazio nel layout, quindi aggiungerne o spostarne uno non sposta mai gli elementi circostanti.
  • Un contorno può essere non rettangolare (ad esempio, avvolge ciascuna riga di un elemento inline su più righe).

Poiché un contorno non influisce sul layout, outline-offset è un modo sicuro per allontanare il contorno dall'elemento (o portarlo all'interno) senza rifluire la pagina. Questa proprietà è una delle proprietà CSS3.

Non fa parte della proprietà abbreviata outline. A differenza di outline-style, outline-color e outline-width, outline-offset deve sempre essere impostata come dichiarazione separata.

Valore iniziale0
Si applica aTutti gli elementi.
EreditataNo.
AnimabileSì. La larghezza dello spazio è animabile.
VersioneCSS3
Sintassi DOMobject.style.outlineOffset = "20px";

Sintassi

Sintassi CSS outline-offset

outline-offset: length | initial | inherit;

Esempio della proprietà outline-offset:

Esempio di codice 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>

Risultato

Elenco dei valori CSS outline-offset

Nell'esempio precedente lo spazio tra il contorno e il bordo è di 10px, e lo sfondo della pagina è visibile attraverso quel gap trasparente.

Valori negativi

outline-offset accetta anche lunghezze negative. Un offset negativo sposta il contorno verso l'interno, così viene disegnato sopra il padding/contenuto dell'elemento invece che intorno ad esso:

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

Questo è utile quando si desidera un anello di focus che si trovi all'interno di un elemento fortemente compresso (ad esempio, un pulsante adiacente al bordo di un contenitore) senza che il contorno venga ritagliato da un antenato con overflow: hidden. Un offset negativo maggiore dell'elemento fa collassare e scomparire il contorno.

Quando usarla

  • Anelli di focus distanziati. Abbina :focus-visible con un piccolo offset positivo in modo che l'anello di focus da tastiera non si sovrapponga all'elemento. Non rimuovere mai il contorno senza fornire un'alternativa — è l'indicatore principale per gli utenti che usano la tastiera.
  • Effetti decorativi "doppio bordo" senza aggiungere un secondo elemento, poiché il gap dell'offset rivela lo sfondo.
  • Evitare anelli ritagliati all'interno di contenitori scorrevoli, usando un piccolo offset negativo.

Valori

ValoreDescrizione
lengthSpazio tra il contorno e il bordo dell'elemento. Può essere negativo per disegnare il contorno all'interno del bordo. Il valore predefinito è 0.
initialImposta la proprietà al suo valore predefinito.
inheritEredita la proprietà dall'elemento genitore.

Aspetti da tenere a mente

  • outline-offset non è ereditata — i figli non la ricevono automaticamente.
  • Le percentuali non sono consentite; funzionano solo le unità length (px, em, rem, ecc.).
  • L'offset viene visualizzato solo quando un contorno è effettivamente visibile, cioè quando outline-style non è none e la larghezza è maggiore di zero.
  • Il gap è trasparente — outline-offset non può avere un proprio colore.

Esercitazione

Pratica
Cosa si può dire della proprietà CSS outline-offset in base alle informazioni fornite nell'URL indicato?
Cosa si può dire della proprietà CSS outline-offset in base alle informazioni fornite nell'URL indicato?
Was this page helpful?