Cómo hacer un salto de línea
Pon <br> donde quieras que empiece la línea nueva. Es un elemento vacío, así que no tiene etiqueta de cierre:
La dirección se corta justo en cada <br>. El segundo párrafo se queda en una línea aunque el código fuente tenga un salto de línea dentro: HTML trata los saltos de línea, las tabulaciones y las series de espacios como un solo espacio. Por eso existe <br>.
<br>, <br/> y <br /> producen el mismo elemento. Usa el que use tu proyecto (JSX y XHTML exigen la barra).
br vs p: los saltos no son espaciado
Un <br> termina una línea dentro del mismo párrafo. Un <p> nuevo empieza un párrafo nuevo, con espacio arriba y abajo gracias a los márgenes por defecto. Apilar etiquetas <br> para crear espacio funciona, pero es frágil y dice algo que no es:
Las dos cajas se ven parecidas, pero para un lector de pantalla la primera es un solo párrafo, y cambiar el espaciado obliga a editar cada página. En la segunda, el hueco es una línea de CSS.
Buenos usos de <br>: direcciones, poemas y letras de canciones, y las líneas de una firma, donde el salto pertenece al texto. Para todo lo demás, usa párrafos, listas o encabezados.
Conservar los saltos de línea de tu texto
Cuando el texto viene de otro sitio (un cuadro de comentarios, una base de datos, un script), tiene caracteres de salto de línea reales en lugar de etiquetas <br>. El CSS white-space: pre-line hace que el navegador muestre esos saltos como saltos de línea:
La misma cadena se ve en una línea en la caja gris y en tres líneas en la azul. Además es más seguro que meter etiquetas <br> en el texto de los usuarios con innerHTML, lo que les permitiría inyectar HTML. Para conservar también los espacios y la sangría, usa white-space: pre, que se explica en la página de espacios en HTML.
Dejar que las palabras largas se corten: wbr
Una palabra o una URL larga sin espacios puede desbordar una caja estrecha. <wbr> marca un punto donde el navegador puede cortar la línea si lo necesita, y no hace nada en caso contrario:
La primera ruta se sale de su caja; la segunda se corta en los puntos <wbr>. Para texto que no controlas, la propiedad CSS overflow-wrap: anywhere corta las palabras largas en cualquier punto.
Evitar que una línea se corte
A veces quieres lo contrario: mantener juntos "10 km" o un número de teléfono. Hay dos herramientas:
es un espacio en el que el navegador no corta la línea, así que "10" y "km" se quedan juntos. white-space: nowrap mantiene todo un span en una línea. Cambia por un espacio normal, o quita la clase, y con este ancho los dos se parten en dos líneas.
Errores comunes
- Pulsar Enter en el código fuente y esperar una línea nueva. Los saltos de línea en HTML son espacios. Usa
<br>, elementos separados owhite-space: pre-line. - Apilar
<br><br><br>para dar espacio. Usa párrafos ymargin. - Usar
<br>para construir una lista. Usa<ul>u<ol>con<li>, que los lectores de pantalla anuncian como lista. - Escribir
</br>. No es válido. Escribe<br>. - Añadir
<br>al texto de los usuarios coninnerHTML. AsignatextContenty usawhite-space: pre-lineen su lugar.
Preguntas frecuentes
¿Cómo hago un salto de línea en HTML?
Inserta <br> donde debe empezar la nueva línea: Línea uno<br>Línea dos. Pulsar Enter en tu archivo HTML no funciona, porque los navegadores tratan los saltos de línea del código fuente como espacios normales.
¿Debo escribir <br>, <br/> o <br />?
Los tres funcionan en HTML y producen el mismo elemento. <br> es la forma HTML simple; las versiones con barra se aceptan por compatibilidad con XHTML y JSX. </br> solo no es válido, aunque los navegadores lo leen como otro salto de línea.
¿Cuándo debo usar <br> en lugar de <p>?
Usa <br> cuando el salto de línea forma parte del propio contenido, como en una dirección o un poema. Usa elementos <p> separados para párrafos distintos, y el margin de CSS para el espaciado, en lugar de apilar etiquetas <br>.
¿Cómo conservo los saltos de línea de un texto sin añadir etiquetas <br>?
Dale al elemento white-space: pre-line en el CSS. El navegador muestra entonces cada salto de línea del texto como un salto real, y sigue juntando los espacios sobrantes. Es útil para comentarios de usuarios y texto cargado con JavaScript.
¿Cómo evito un salto de línea en HTML?
Envuelve el texto en un elemento con white-space: nowrap, o une dos palabras con un espacio de no separación para que siempre queden en la misma línea.