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:
è 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 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 owhite-space: pre-line. - Impilare
<br><br><br>per creare spazio. Usa paragrafi emargin. - 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 coninnerHTML. ImpostatextContente usa invecewhite-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 così restano sempre sulla stessa riga.