Menu

Bordi CSS: border, spessore, stile, colore e border-radius

La proprietà border disegna una linea attorno al padding di un elemento. Impara la forma abbreviata border, tutti gli stili di bordo, i colori e i singoli lati, gli angoli arrotondati con border-radius e la differenza tra bordi e outline.

Questa pagina include editor eseguibili: modifica, esegui e vedi subito l'output.

La forma abbreviata border

border disegna una linea attorno a un elemento, tra il suo padding e il suo margin. La forma abbreviata accetta tre parti in qualsiasi ordine: uno spessore, uno stile e un colore.

ParteProprietà singolaValoriPredefinito
Spessoreborder-width1px, 0.2em, thin, medium, thickmedium
Stileborder-stylesolid, dashed, dotted, double e altrinone
Coloreborder-colorQualsiasi colorecurrentColor (il colore del testo)

Lo stile è l'unica parte che non puoi saltare. Il suo valore predefinito è none, quindi border: 2px #2563eb; non disegna proprio nulla. Se ometti il colore, il bordo prende il colore del testo dell'elemento.

Stili di bordo

double richiede almeno 3px per mostrare due linee. groove, ridge, inset e outset sfumano il colore per sembrare in 3D e cambiano leggermente da un browser all'altro. hidden sembra uguale a none; i due differiscono solo nelle tabelle con bordi collassati, di cui parla la pagina sui bordi delle tabelle HTML.

Un lato alla volta

Ogni lato ha la sua forma abbreviata (border-top, border-right, border-bottom, border-left), e ogni parte ha proprietà per lato come border-top-color. Le versioni logiche, border-inline-start e border-block-end, seguono la direzione del testo:

border-color, border-width e border-style accettano da uno a quattro valori, nello stesso ordine in senso orario del padding: sopra, destra, sotto, sinistra.

Angoli arrotondati con border-radius

border-radius arrotonda gli angoli del bordo e dello sfondo, quindi funziona anche su elementi senza alcun bordo.

ValoreRisultato
border-radius: 8pxTutti gli angoli arrotondati di 8px
border-radius: 50%Un cerchio su un elemento quadrato, un'ellisse su un rettangolo
border-radius: 999pxUna pillola: i lati corti diventano semicerchi completi
border-radius: 8px 0In alto a sinistra e in basso a destra 8px, gli altri due squadrati
border-top-left-radius: 12pxUn solo angolo
border-radius: 50% / 25%Angoli ellittici: raggio orizzontale / raggio verticale

Un figlio con uno sfondo può sporgere oltre gli angoli arrotondati del genitore. overflow: hidden sul genitore lo ritaglia seguendo la curva.

Border contro outline

Un outline sembra un bordo, ma viene disegnato fuori dal bordo e non occupa spazio, quindi aggiungerne uno non sposta mai nulla. Per questo i browser usano gli outline per gli indicatori di focus.

BorderOutline
Occupa spazioSì, fa parte delle dimensioni del boxNo
Per latoSì (border-top, ...)No, tutto attorno
Segue border-radiusSìSì, nei browser attuali
Distanza dal boxNoSì, outline-offset
Uso tipicoDesignIndicatori di focus, debug

Errori comuni

  • Nessuno stile di bordo. border: 1px #111827; e border-color: red; non disegnano nulla. Includi solid (o un altro stile).
  • Un bordo che fa saltare il layout all'hover. Riserva lo spazio con un bordo trasparente, oppure usa un outline o box-shadow.
  • Dimenticare il bordo nella larghezza. Un elemento con width: 100% e un bordo esce dal contenitore con content-box. Usa box-sizing: border-box.
  • border-radius con un figlio che sporge dagli angoli. Aggiungi overflow: hidden al genitore arrotondato.
  • Togliere gli outline di focus con outline: none. Chi usa la tastiera ne ha bisogno; ridisegna l'outline invece di eliminarlo.

Domande frequenti

Come aggiungo un bordo in CSS?

Usa la forma abbreviata con uno spessore, uno stile e un colore: border: 2px solid #2563eb;. La parte che conta di più è lo stile: senza, lo stile del bordo è none e non viene disegnato nessun bordo.

Perché il mio bordo CSS non si vede?

Quasi sempre perché non è impostato nessuno stile di bordo. border: 2px #2563eb; o border-color: red; da soli non disegnano nulla, perché il border-style predefinito è none. Aggiungi solid, dashed o un altro stile.

Come faccio gli angoli arrotondati in CSS?

Usa border-radius: border-radius: 8px; arrotonda tutti e quattro gli angoli. border-radius: 50%; su un quadrato crea un cerchio, e un valore grande come 999px crea una forma a pillola. Arrotonda anche lo sfondo, pure senza bordo.

Come aggiungo un bordo su un solo lato?

Usa una proprietà per lato: border-bottom: 2px solid #e5e7eb;, oppure border-inline-start per il lato dove inizia il testo, che funziona anche con le lingue scritte da destra a sinistra.

Che differenza c'è tra border e outline?

Un bordo fa parte del box: occupa spazio e cambia le dimensioni dell'elemento. Un outline viene disegnato fuori dal bordo senza occupare spazio, non si può impostare per lato ed è quello che i browser usano per gli indicatori di focus. Entrambi seguono border-radius nei browser attuali.

Illustrazione dei linguaggi di programmazione di Coddy

Impara a programmare con Coddy

INIZIA