Menu

Andare a capo in HTML: il tag br e i punti di interruzione

Usa <br> per andare a capo dentro un blocco di testo. Scopri quando <br> è la scelta giusta e quando è meglio un paragrafo, come mantenere gli a capo del testo, come far spezzare le parole lunghe con <wbr> e come impedire che una riga vada a capo.

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

Come andare a capo

Metti <br> dove vuoi che inizi la nuova riga. È un elemento vuoto, quindi non ha tag di chiusura:

L'indirizzo va a capo esattamente a ogni <br>. Il secondo paragrafo resta su una sola riga anche se nel sorgente c'è un a capo: l'HTML tratta a capo, tabulazioni e sequenze di spazi come un unico spazio. Ecco perché esiste <br>.

<br>, <br/> e <br /> producono tutti lo stesso elemento. Usa quello che usa il tuo progetto (JSX e XHTML richiedono la barra).

br vs p: andare a capo non è spaziare

Un <br> chiude una riga dentro lo stesso paragrafo. Un nuovo <p> inizia un nuovo paragrafo, con spazio sopra e sotto dovuto ai margini predefiniti. Impilare tag <br> per creare spazio funziona, ma è fragile e comunica la cosa sbagliata:

I due riquadri sembrano simili, ma per uno screen reader il primo è un unico paragrafo, e per cambiare la spaziatura devi modificare ogni pagina. Nel secondo, lo spazio è una riga di CSS.

Buoni usi di <br>: indirizzi, poesie e testi di canzoni, e le righe di una firma, dove l'a capo fa parte del testo. Per tutto il resto usa paragrafi, liste o titoli.

Mantenere gli a capo del testo

Quando il testo arriva da un'altra fonte (un campo commenti, un database, uno script), contiene veri caratteri di a capo invece di tag <br>. La proprietà CSS white-space: pre-line fa mostrare al browser quegli a capo come interruzioni di riga:

La stessa stringa appare su una riga nel riquadro grigio e su tre righe in quello blu. È anche più sicuro che inserire tag <br> nel testo degli utenti con innerHTML, che permetterebbe agli utenti di iniettare HTML. Per mantenere anche spazi e rientri, usa white-space: pre, spiegato nella pagina spazi in HTML.

Far spezzare le parole lunghe: wbr

Una parola o un URL lungo senza spazi può uscire da un riquadro stretto. <wbr> segna un punto in cui il browser può andare a capo se serve, e altrimenti non fa niente:

Il primo percorso esce dal suo riquadro; il secondo va a capo nei punti <wbr>. Per il testo che non controlli, la proprietà CSS overflow-wrap: anywhere spezza invece le parole lunghe in qualsiasi punto.

Impedire che una riga vada a capo

A volte vuoi l'opposto: tenere insieme "10 km" o un numero di telefono. Hai due strumenti:

&nbsp; è uno spazio in cui il browser non va a capo, quindi "10" e "km" restano insieme. white-space: nowrap tiene un intero span su una riga. Sostituisci &nbsp; con uno spazio normale, o togli la classe, e a questa larghezza entrambi si dividono su due righe.

Errori comuni

  • Premere Invio nel sorgente e aspettarsi una nuova riga. Gli a capo in HTML sono spazi. Usa <br>, elementi separati o white-space: pre-line.
  • Impilare <br><br><br> per creare spazio. Usa paragrafi e margin.
  • Usare <br> per costruire una lista. Usa <ul> o <ol> con <li>, che gli screen reader annunciano come lista.
  • Scrivere </br>. Non è valido. Scrivi <br>.
  • Aggiungere <br> al testo degli utenti con innerHTML. Imposta textContent e usa invece white-space: pre-line.

Domande frequenti

Come si va a capo in HTML?

Inserisci <br> dove deve iniziare la nuova riga: Line one<br>Line two. Premere Invio nel file HTML non funziona, perché i browser trattano gli a capo del codice sorgente come normali spazi.

Devo scrivere <br>, <br/> o <br />?

Funzionano tutti e tre in HTML e producono lo stesso elemento. <br> è la forma HTML semplice; le versioni con la barra sono accettate per compatibilità con XHTML e JSX. </br> da solo non è valido, anche se i browser lo leggono come un altro a capo.

Quando devo usare <br> invece di <p>?

Usa <br> quando l'a capo fa parte del contenuto stesso, come in un indirizzo o in una poesia. Usa elementi <p> separati per paragrafi separati, e il margin del CSS per la spaziatura, invece di impilare tag <br>.

Come mantengo gli a capo di un testo senza aggiungere tag <br>?

Dai all'elemento white-space: pre-line in CSS. Il browser mostra allora ogni a capo del testo come un'interruzione di riga, continuando a comprimere gli spazi in più. È comodo per i commenti degli utenti e per il testo caricato con JavaScript.

Come impedisco di andare a capo in HTML?

Racchiudi il testo in un elemento con white-space: nowrap, oppure unisci due parole con uno spazio indivisibile &nbsp; così restano sempre sulla stessa riga.

Illustrazione dei linguaggi di programmazione di Coddy

Impara a programmare con Coddy

INIZIA