Menu

Linea orizzontale in HTML: il tag hr e come dargli stile

Disegna una linea orizzontale in HTML con il tag <hr>. Scopri cosa significa, come cambiarne colore, spessore, larghezza e stile con il CSS, come creare un separatore con del testo al centro e come fare una linea verticale.

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

Come aggiungere una linea orizzontale

Metti <hr> tra due blocchi di contenuto. Non ha tag di chiusura:

Di default la linea occupa tutta la larghezza del suo contenitore, ha un piccolo margine sopra e sotto ed è disegnata come un sottile bordo grigio inset (un bordo chiaro e uno scuro).

<hr> sta per horizontal rule, linea orizzontale. In HTML significa un'interruzione tematica: un cambio di argomento o di scena dentro una sezione. I lettori di schermo lo annunciano come separatore. Se vuoi solo una linea decorativa (sotto un titolo, intorno a una card), disegnala invece con un bordo CSS su quell'elemento.

Dare stile a un hr con il CSS

L'aspetto predefinito viene dai bordi, quindi il modo affidabile di dare stile a un <hr> è toglierli e disegnare tu un solo bordo:

Per cambiareUsa
Coloreborder-top: 2px solid #2563eb (dopo border: none)
SpessoreLa larghezza in quel bordo, come 6px
Stilesolid, dashed, dotted, double
Lunghezzawidth: 40%, più margin-inline: auto per centrarla
Estremità arrotondateheight + background + border-radius al posto di un bordo
Spazio intornomargin

Impostare solo color: blue su un hr cambia la linea nei browser attuali, ma lo stile inset predefinito la ombreggia e resta alta 2px. Azzerare il bordo ti dà esattamente quello che chiedi.

Vecchi attributi di hr

Il codice vecchio usa attributi sul tag stesso:

<hr size="4" width="50%" color="red" noshade align="left">

size, width, color, noshade e align sono obsoleti. I browser li applicano ancora perché le vecchie pagine si vedano bene, ma sono HTML non valido e più difficili da cambiare in seguito. Sostituiscili con il CSS qui sopra.

Un separatore con del testo al centro

La linea "oppure" tra due pulsanti di accesso non è un <hr> (un hr non può contenere testo). È una riga flex con una linea disegnata ai due lati della parola:

I due pezzi ::before e ::after prendono ciascuno metà dello spazio libero con flex: 1 e disegnano un bordo superiore. Cambia or con una parola più lunga e le linee si accorciano per starci.

Linee verticali

Non esiste una versione verticale di <hr>. Disegna una linea verticale con un bordo su un lato di un elemento, o con un elemento sottile dentro una riga flex:

border-inline-start mette la linea all'inizio del testo, cioè a sinistra in italiano e a destra in arabo o ebraico, quindi il layout funziona in entrambe le direzioni.

Errori comuni

  • Scrivere </hr>. <hr> è un elemento vuoto. Basta <hr> o <hr />.
  • Usare <hr> come decorazione. I lettori di schermo annunciano ognuno di essi. Una linea solo visiva appartiene al CSS.
  • Dare stile solo con color. Azzera il bordo con border: none e imposta border-top.
  • Usare <br> o trattini bassi per disegnare linee. Usa <hr> o un bordo. Vedi andare a capo per capire a cosa serve <br>.
  • Usare attributi obsoleti. Sposta size, width, color e noshade nel CSS.

Domande frequenti

Come aggiungo una linea orizzontale in HTML?

Usa il tag <hr> su una riga a sé. È un elemento vuoto senza tag di chiusura, e disegna una linea su tutta la larghezza del suo contenitore.

Come cambio il colore di un hr?

Togli il bordo predefinito e disegna il tuo: hr { border: none; border-top: 2px solid #2563eb; }. Anche impostare solo color lo cambia, ma lo stile inset predefinito lo lascia ombreggiato e bicolore.

Come rendo un hr più spesso?

Imposta lo spessore del bordo: hr { border: none; border-top: 4px solid #111827; }. L'attributo size dei vecchi tutorial funziona ancora nei browser ma è obsoleto, quindi usa il CSS.

Cosa significa hr?

Horizontal rule, cioè linea orizzontale. Nell'HTML attuale indica un'interruzione tematica: un cambio di argomento o di scena tra paragrafi. I lettori di schermo lo annunciano come separatore.

Come faccio una linea verticale in HTML?

L'HTML non ha un tag per la linea verticale. Aggiungi un bordo a un lato di un elemento, come border-inline-start: 2px solid #e5e7eb, oppure usa un elemento stretto con un colore di sfondo dentro una riga flex.

Illustrazione dei linguaggi di programmazione di Coddy

Impara a programmare con Coddy

INIZIA