Las propiedades CSS margin se utilizan para crear espacio alrededor de los elementos, fuera de los bordes definidos. Con CSS, tienes control total sobre los márgenes. Hay propiedades para establecer el margen de cada lado de un elemento (superior, derecho, inferior e izquierdo).

margin - lados individuales

CSS tiene propiedades para especificar el margen de cada lado de un elemento:

  • margin-top
  • margin-right
  • margin-bottom
  • margin-left

Todas las propiedades margin tienen los siguientes valores:

  • auto: el navegador calcula el margen
  • largo: especifica un margen en px, pt, cm, etc.
  • %: especifica un margen en % del ancho del elemento contenedor
  • inherit: especifica que el margen debe ser heredado del elemento padre

Ejm

{
  margin-top: 100px;
  margin-bottom: 100px;
  margin-right: 150px;
  margin-left: 80px;
}

margin - propiedad abreviada

Para acortar el código, es posible especificar todas las propiedades de margen en una propiedad. La propiedad margin es una propiedad abreviada para las siguientes propiedades margin individuales:

  • margin-top
  • margin-right
  • margin-bottom
  • margin-left

Ejm

  • margin: 25px 50px 75px 100px;
    • top margin is 25px
    • right margin is 50px
    • bottom margin is 75px
    • left margin is 100px

Ejm

{
  margin: 25px 50px 75px 100px;
}

Si la propiedad margin tiene 3 valores, el primer valor será para el margen de arriba, el segundo valor para los márgenes laterales, y el tercer valor para el margen de abajo.

Ejm

{
  margin: 25px 50px 75px;
}

Si la propiedad margin presenta 2 valores, el primer valor será para los márgenes de arriba y abajo, y el segundo valor, para los márgenes laterales.

Ejm

{
  margin: 25px 50px;
}

Por último, si la propiedad margin tiene un único valor, este será para todos los márgenes.

El valor auto

Puedes establecer la propiedad margin="auto" para centrar horizontalmente el elemento dentro de su contenedor. El elemento ocupará entonces el ancho especificado y el espacio restante se dividirá por igual entre los márgenes izquierdo y derecho.

Ejm

div {
  width: 300px;
  margin: auto;
  border: 1px solid red;
}

El valor inherit

Este ejemplo permite que el margen izquierdo del elemento <p class="ex1"> se herede del elemento principal (<div>).

Ejm

div {
  border: 1px solid red;
  margin-left: 100px;
}

p.ex1 {
  margin-left: inherit;
}

margin collapse

Los márgenes superior e inferior de los elementos a veces se contraen en un solo margen que es igual al mayor de los dos márgenes. ¡Esto no sucede en los márgenes izquierdo y derecho! ¡Solo márgenes superior e inferior!

Ejm

h1 {
  margin: 0 0 50px 0;
}

h2 {
  margin: 20px 0 0 0;
}

En el ejemplo anterior, el elemento <h1> tiene un margen inferior de 50 px y el elemento <h2> tiene un margen superior establecido en 20 px.

El sentido común parecería sugerir que el margen vertical entre <h1> y <h2> sería un total de 70px (50px + 20px). Pero debido al colapso del margen, el margen real termina siendo 50 px.