HOWTO · HTML
Cómo crear una línea vertical en HTML
Crea una línea vertical en una página HTML con CSS usando border-left o un elemento hr con estilo, y colócala entre bloques de contenido con Flexbox o CSS Grid.
En esta página
Para crear una línea vertical en una página HTML, usa CSS para definir su altura, grosor y color. border-left funciona bien como divisor decorativo; aplica estilos a <hr> cuando represente una separación temática; y usa Flexbox o CSS Grid para colocar un divisor entre bloques de contenido. HTML por sí solo no controla el aspecto de la línea.
Crear una línea vertical con CSS border-left
Un borde izquierdo es una forma sencilla de dibujar una línea decorativa. Asigna una altura explícita al elemento y luego define el ancho y el color del borde. Este script de Node.js escribe una página de ejemplo completa en vertical-line.html; abre ese archivo en un navegador para verla.
Aquí tienes un generador de páginas completo. Ejecútalo con Node.js para crear una página con dos etiquetas y un divisor azul entre ellas.
const { writeFileSync } = require("node:fs");
const page = `<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Vertical line with a border</title>
<style>
.row { display: flex; align-items: center; }
.line {
height: 8rem;
border-left: 2px solid #2563eb;
margin-inline: 1rem;
}
</style>
</head>
<body>
<div class="row">
<span>Account details</span>
<div class="line" aria-hidden="true"></div>
<span>Preferences</span>
</div>
</body>
</html>`;
writeFileSync("vertical-line.html", page);
console.log("Created vertical-line.html");
El CSS define una longitud de línea de 8 rem y un grosor de 2 píxeles; cambia esos valores y el color del borde para adaptarlos a tu página. margin-inline añade espacio a ambos lados en diseños de izquierda a derecha y de derecha a izquierda. Como la línea es decorativa, aria-hidden="true" la excluye del árbol de accesibilidad. Una altura porcentual depende de que el bloque contenedor tenga una altura definida; de lo contrario, puede que no se ajuste al tamaño esperado.
Adaptar un elemento hr para crear una línea vertical
El elemento hr, que se escribe como <hr> en el código HTML, representa una separación temática entre partes de una página. Úsalo cuando ese significado corresponda al contenido; CSS cambia su aspecto, pero no su significado. Los navegadores aplican estilos predeterminados, así que restablece el borde antes de dibujar una línea vertical estrecha. Por ejemplo, usa <hr class="vertical-rule"> y aplícale estos estilos: width: 0; height: 8rem; border: 0; border-left: 2px solid #2563eb; margin: 1rem;. El ancho visible lo determina el borde izquierdo. Este elemento permanece en el flujo normal del documento y ocupa su propia línea; colócalo en un contenedor Flexbox o Grid si debe quedar entre contenidos uno al lado del otro.
Colocar un divisor entre contenidos con Flexbox o CSS Grid
Flexbox y CSS Grid colocan el divisor como un elemento del diseño, mientras que un borde o un fondo dibuja la línea visible. En una fila Flexbox, coloca dos secciones de contenido a ambos lados de un elemento divisor; define display: flex; align-items: stretch; gap: 1rem; en el contenedor, asigna flex: 1; a cada sección y aplica border-left: 2px solid #2563eb; al divisor. La línea se extiende hasta la altura de la fila, determinada por la sección de contenido más alta. Marca los divisores decorativos con aria-hidden="true".
En CSS Grid, usa tres columnas para que la línea ocupe la pista central: grid-template-columns: minmax(0, 1fr) 2px minmax(0, 1fr); gap: 1rem;. Coloca los paneles en la primera y la tercera columna, y un elemento divisor con background: #2563eb en la del medio; la pista de 2 píxeles determina el grosor. En pantallas estrechas, apila los paneles con una media query y sustituye la línea vertical por un borde horizontal si se adapta mejor al orden de lectura. Elige border-left para un acento sencillo, <hr> para una separación temática significativa y Flexbox o CSS Grid cuando el divisor deba quedar entre elementos del diseño.