CSS: Márgenes

Los márgenes son la separación horizontal y vertical que queda alrededor de un elemento HTML, a partir de la línea del borde hacia el exterior. Por defecto, los elementos no tienen ningún margen. Los márgenes se definen con la propiedad abreviada margin o con las propiedades específicas.

La propiedad CSS margin permite valores de longitud, que se pueden indicar como unidad relativa (porcentajes, em, rem) o absoluta (píxeles, picas, puntos, centímetros, milímetros, etc). Su valor inicial y por defecto será 0, es decir, sin márgenes definidos. Las más usadas son píxeles, em y porcentajes.

Esta propiedad admite de uno a cuatro parámetros. Si se usa un único parámetro se aplica a los cuatro lados por igual. Si se usa dos parámetros, el primero se aplica al eje vertical (arriba y abajo) y el segundo al eje horizontal (derecha e izquierda). Si se indica tres parámetros, el primero se aplica arriba, el segundo a ambos lados y el tercero abajo. Si se indica cuatro parámetros siguen el orden de las agujas del reloj, es decir, arriba, derecha, abajo y terminando en la izquierda.

Tabla resumen de márgenes abreviados:

Ejemplos Descripción
margin: 1px A los cuatro lados.
margin: 1px 2px Vertical, horizontal.
margin: 1px 2px 3px Arriba, horizontal, abajo.
margin: 1px 2px 3px 4px Arriba, derecha, abajo, izquierda.

Tabla de valores globales de margin:

Valor Descripción
inherit Hereda el margen aplicado en el elemento padre.
initial Fuerza el uso del valor de margen inicial.
unset Restablece una propiedad a su valor heredado, y si no hereda la restablece a su valor inicial.
revert Restablece una propiedad a su valor heredado, y si no hereda la restablece a la hoja de estilos aplicada por el usuario en el navegador, y si no la tiene la restablece a su valor inicial.

Con ayuda del valor auto para los márgenes de la izquierda y la derecha, el navegador los distribuirá equitativamente. Si el elemento tiene un ancho inferior al del elemento contenedor superior, quedará centrado.

Por ejemplo:

.centrado {
  background: teal;
  height: 34px;
  margin: 0 auto;
  width: 100px;
}

Resultado:

El elemento es más estrecho (100 píxeles) que su elemento padre, y ha quedado centrado gracias a que el margen está definido como auto (automático) en el eje horizontal. Para los márgenes de arriba y abajo su valor es 0. De hecho, es muy habitual usar el valor 0 auto para centrar elementos.

Propiedades específicas de margen

Los márgenes de un elemento se pueden definir por separado mediante cuatro propiedades específicas del lenguaje CSS, sin tener que usar las abreviaturas. De esta manera, es posible cambiar los márgenes de arriba, abajo, izquierda y derecha de forma independiente. Son las siguientes:

Propiedad Descripción
margin-top Especifica el margen en la parte superior.
margin-right Especifica el margen en la parte derecha.
margin-bottom Especifica el margen en la parte inferior.
margin-left Especifica el margen en la parte izquierda.

Veamos como se aplican.

La propiedad ‘margin-top’

Con la propiedad margin-top se especifica un valor de margen que se aplicará en la parte superior del elemento HTML seleccionado. Para visualizarlo, hemos creado un elemento contenedor y un elemento interior con márgenes modificados.

.arriba {
  margin-top: 10px;
}

Resultado:

La propiedad ‘margin-right’

Para modificar el margen de la derecha de un elemento HTML se debe usar la propiedad margin-right. En este caso, hacemos uso de una función CSS para restarle 10 píxeles al ancho total; la veremos más adelante.

.derecha {
  margin-right: 10px;
}

Resultado:

La propiedad ‘margin-bottom’

Mediante la propiedad margin-bottom es posible aplicar un margen en la parte inferior del elemento HTML seleccionado. Se trata de una propiedad muy usada para dar margen inferior a los párrafos.

.abajo {
  margin-bottom: 10px;
}

Resultado:

La propiedad ‘margin-left’

Finalmente, la propiedad margin-left permite aplicar un margen al lado izquierdo del elemento HTML seleccionado.

.left {
  margin-left: 10px;
}

Resultado:

Combinación de márgenes

En ocasiones, los márgenes de arriba y abajo de los elementos de bloque están combinados en uno solo, como si se hubieran fusionado, sin sumarse. El tamaño del margen resultante es el mayor de los dos márgenes. Esta combinación no sucede con elementos flotantes o si tienen posición absoluta.

La combinación de márgenes ocurre en estos casos:

  • Dos elementos que son hermanos adyacentes
  • Elemento padre con el primer elemento hijo
  • Elemento padre con el último elemento hijo
  • Bloques vacíos (los dos márgenes colapsan)
← Artículo anterior
Artículo siguiente →