Menu

Padding en CSS: abreviatura, lados, porcentajes y ejemplos

El padding es el espacio dentro de un elemento, entre su contenido y su borde. Aprende la abreviatura padding con 1 a 4 valores, las propiedades de cada lado, el padding lógico, los porcentajes y cómo el padding cambia el tamaño de un elemento.

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

Qué es el padding

El padding es el espacio dentro de un elemento, entre su contenido y su borde. Toma el fondo del elemento, así que es la propiedad que le da aire a un botón, una tarjeta o una etiqueta.

La zona azul es el contenido. La franja verde a su alrededor son los 24px de padding en cada lado, y el borde queda por fuera.

La abreviatura padding: 1, 2, 3 o 4 valores

padding define los cuatro lados en una sola declaración. La cantidad de valores decide qué lado recibe cuál, en el sentido de las agujas del reloj desde arriba:

DeclaraciónArribaDerechaAbajoIzquierda
padding: 10px;10101010
padding: 10px 20px;10201020
padding: 10px 20px 30px;10203020
padding: 10px 20px 30px 40px;10203040

Dos valores significan "vertical, horizontal". Tres valores significan "arriba, horizontal, abajo". Cuatro dan la vuelta al reloj: arriba, derecha, abajo, izquierda (en inglés se recuerda con la palabra TRouBLe: top, right, bottom, left).

Escribe cualquier abreviatura abajo. La caja se vuelve a dibujar y el navegador informa qué recibió cada lado:

Prueba 8px, 8px 24px, 0 0 40px y 1em 5%. Un valor inválido, como -10px, se ignora y la caja conserva el último padding válido.

Un lado a la vez

Cada lado tiene su propia propiedad, que es más clara que una abreviatura de cuatro valores cuando solo quieres cambiar uno:

.card {
  padding-top: 16px;
  padding-right: 24px;
  padding-bottom: 16px;
  padding-left: 24px;
}

Una abreviatura seguida de un lado es un patrón común: defines todo y luego ajustas un lado.

.card {
  padding: 16px;
  padding-bottom: 32px; /* only the bottom changes */
}

Aquí el orden importa: una abreviatura padding escrita después de padding-bottom volvería a poner la parte de abajo en 16px.

Padding lógico: padding-inline y padding-block

padding-left y padding-right son físicas: se quedan en el mismo lado en todos los idiomas. Las propiedades lógicas, en cambio, siguen la dirección de escritura, que es lo que necesitas en un sitio que también se muestra de derecha a izquierda:

Propiedad lógicaEn español (izquierda a derecha)En árabe (derecha a izquierda)
padding-inline-startizquierdaderecha
padding-inline-endderechaizquierda
padding-inlineizquierda y derechaderecha e izquierda
padding-blockarriba y abajoarriba y abajo

El padding agranda la caja (salvo con border-box)

Por defecto, width es solo el ancho del contenido, y el padding se suma por encima. Una caja con width: 200px y padding: 20px mide 240px de ancho:

box-sizing: border-box mantiene la caja en 200px y toma el padding de dentro. La página del modelo de caja explica el cálculo completo.

Padding en porcentaje

Un padding en porcentaje se mide respecto al ancho del padre, en los cuatro lados, incluidos arriba y abajo:

De ahí viene el viejo truco de "padding-top: 56.25%" para cajas de video 16:9. Hoy aspect-ratio: 16 / 9 hace lo mismo directamente.

Padding en botones y enlaces

El padding es la forma correcta de agrandar un enlace o un botón, porque el padding es parte del elemento y, por lo tanto, parte de lo que puedes clicar o tocar. El margin agregaría espacio, pero no un objetivo más grande.

.btn {
  display: inline-block; /* lets vertical padding take space in the line */
  padding: 10px 18px;    /* a comfortable touch target */
}

Valores que acepta padding

ValorEjemploNotas
Longitud12px, 1rem, 0.5emem escala con el tamaño de fuente del elemento
Porcentaje5%Del ancho del bloque contenedor
0padding: 0No necesita unidad
Negativo-10pxInválido, se ignora
autoautoInválido para padding (funciona con margin)

Errores comunes

  • Orden incorrecto en la abreviatura de cuatro valores. Es arriba, derecha, abajo, izquierda, en el sentido de las agujas del reloj.
  • Una caja que crece al agregar padding. Define box-sizing: border-box.
  • Usar padding para separar dos elementos. El espacio entre elementos es margin; el padding es espacio dentro de uno. Consulta margin vs padding.
  • Padding vertical en un enlace inline que se superpone a otras líneas. Hazlo inline-block.
  • Padding negativo o padding: auto. Los dos son inválidos y se ignoran en silencio.

Preguntas frecuentes

¿Qué es el padding en CSS?

El padding es el espacio entre el contenido de un elemento y su borde. Forma parte del elemento, así que muestra su color de fondo y agranda el área clicable de un enlace o un botón.

¿En qué orden van los valores de la abreviatura padding?

En el sentido de las agujas del reloj desde arriba: padding: top right bottom left;. Con tres valores es arriba, izquierda y derecha, abajo; con dos, arriba y abajo y luego izquierda y derecha; con uno, los cuatro lados.

¿El padding aumenta el tamaño de un elemento?

Con el box-sizing: content-box por defecto, sí: el padding se suma a width y height. Con box-sizing: border-box, el padding se toma de dentro del ancho, así que el elemento conserva el tamaño que definiste.

¿Respecto a qué se calcula un padding en porcentaje?

Respecto al ancho del bloque contenedor, en los cuatro lados. padding-top: 50% es la mitad del ancho del padre, no de su alto, y por eso los viejos trucos de relación de aspecto usaban padding vertical.

¿El padding puede ser negativo?

No. Un valor de padding negativo es inválido y la declaración se ignora. Para sacar contenido hacia afuera, usa un margin negativo.

¿Cómo agrego padding en HTML?

Con CSS, en una hoja de estilo o en un atributo style: <div style="padding: 16px;">. HTML no tiene un atributo de padding para los elementos en general; el viejo atributo cellpadding de las tablas está obsoleto y se reemplaza con padding en td y th.

Coddy programming languages illustration

Aprende a programar con Coddy

COMENZAR