Menu

Bordes en CSS: grosor, estilo, color y border-radius

La propiedad border dibuja una línea alrededor del padding de un elemento. Aprende la abreviatura border, todos los estilos de borde, colores y lados sueltos, esquinas redondeadas con border-radius y en qué se diferencian los bordes de los outlines.

Esta página incluye editores ejecutables: edita, ejecuta y ve el resultado al instante.

La abreviatura border

border dibuja una línea alrededor de un elemento, entre su padding y su margin. La abreviatura acepta tres partes en cualquier orden: un grosor, un estilo y un color.

PartePropiedad largaValoresPor defecto
Grosorborder-width1px, 0.2em, thin, medium, thickmedium
Estiloborder-stylesolid, dashed, dotted, double y másnone
Colorborder-colorCualquier colorcurrentColor (el color del texto)

El estilo es la parte que no puedes omitir. Su valor por defecto es none, así que border: 2px #2563eb; no dibuja nada. Si omites el color, el borde toma el color del texto del elemento.

Estilos de borde

double necesita al menos 3px para mostrar dos líneas. groove, ridge, inset y outset sombrean el color para que parezca 3D y varían un poco entre navegadores. hidden se ve como none; solo se diferencian dentro de tablas con bordes colapsados, que se explican en la página de bordes de tablas HTML.

Un lado a la vez

Cada lado tiene su propia abreviatura (border-top, border-right, border-bottom, border-left), y cada parte tiene propiedades largas por lado como border-top-color. Las versiones lógicas, border-inline-start y border-block-end, siguen la dirección del texto:

border-color, border-width y border-style aceptan de uno a cuatro valores en el mismo orden de las agujas del reloj que padding: arriba, derecha, abajo, izquierda.

Esquinas redondeadas con border-radius

border-radius redondea las esquinas del borde y del fondo, así que funciona en elementos sin ningún borde.

ValorResultado
border-radius: 8pxTodas las esquinas redondeadas 8px
border-radius: 50%Un círculo en un elemento cuadrado, una elipse en un rectángulo
border-radius: 999pxUna píldora: los lados cortos se vuelven semicírculos completos
border-radius: 8px 0Arriba a la izquierda y abajo a la derecha 8px, las otras dos rectas
border-top-left-radius: 12pxUna sola esquina
border-radius: 50% / 25%Esquinas elípticas: radio horizontal / radio vertical

Un hijo con fondo puede sobresalir por las esquinas de un padre redondeado. overflow: hidden en el padre lo recorta según la curva.

Border vs outline

Un outline se parece a un borde, pero se dibuja por fuera y no ocupa espacio, así que agregarlo nunca mueve nada. Por eso los navegadores usan outlines para los anillos de foco.

BorderOutline
Ocupa espacioSí, forma parte del tamaño de la cajaNo
Por ladoSí (border-top, ...)No, todo alrededor
Sigue border-radiusSíSí, en los navegadores actuales
Separación de la cajaNoSí, outline-offset
Uso típicoDiseñoIndicadores de foco, depuración

Errores comunes

  • Sin estilo de borde. border: 1px #111827; y border-color: red; no dibujan nada. Incluye solid (u otro estilo).
  • Un borde que hace saltar el layout en hover. Reserva el espacio con un borde transparente, o usa un outline o box-shadow.
  • Olvidar el borde en el ancho. Un elemento con width: 100% y borde se sale de su contenedor con content-box. Usa box-sizing: border-box.
  • border-radius con un hijo que sobresale por las esquinas. Agrega overflow: hidden al padre redondeado.
  • Quitar los outlines de foco con outline: none. Los usuarios de teclado los necesitan; cambia el estilo del outline en lugar de eliminarlo.

Preguntas frecuentes

¿Cómo agrego un borde en CSS?

Usa la abreviatura con un grosor, un estilo y un color: border: 2px solid #2563eb;. El estilo es la parte más importante: sin él, border-style vale none y no se dibuja ningún borde.

¿Por qué no se ve mi borde en CSS?

Casi siempre porque no hay un estilo de borde. border: 2px #2563eb; o border-color: red; por sí solos no dibujan nada, porque el border-style por defecto es none. Agrega solid, dashed u otro estilo.

¿Cómo hago esquinas redondeadas en CSS?

Usa border-radius: border-radius: 8px; redondea las cuatro esquinas. border-radius: 50%; en un cuadrado hace un círculo, y un valor grande como 999px hace una forma de píldora. También redondea el fondo, aunque no haya borde.

¿Cómo pongo un borde en un solo lado?

Usa una propiedad de lado: border-bottom: 2px solid #e5e7eb;, o border-inline-start para el lado donde empieza el texto, que también funciona en idiomas de derecha a izquierda.

¿Qué diferencia hay entre border y outline?

Un borde es parte de la caja: ocupa espacio y cambia el tamaño del elemento. Un outline se dibuja fuera del borde sin ocupar espacio, no se puede definir por lado y es lo que usan los navegadores para los anillos de foco. Los dos siguen border-radius en los navegadores actuales.

Coddy programming languages illustration

Aprende a programar con Coddy

COMENZAR