El modelo de caja en CSS

El modelo de caja se compone del margen externo (margin), borde (border) y margen interno (padding) de un elemento.

Márgenes

El margen se utiliza para definir el espacio alrededor del elemento.

Puedes utilizar las propiedades CSS margin-top, margin-right, margin-bottom y margin-left para definir el margen superior, derecho, inferior e izquierdo respectivamente:

p {
margin-top: 5px;
margin-right: 5px;
margin-bottom: 5px;
margin-left: 5px;
}

Atajo con margin

Para reducir el código puedes especificar todas las márgenes en una sola propiedad margin:

p {
margin: 5px 5px 5px 5px;
}

El orden es: margen superior, derecho, inferior e izquierdo.

Si todos los márgenes son iguales puedes hacer lo siguiente:

p {
margin: 5px;
}

margin también puede recibir dos valores: el valor para el margen superior e inferior, y el valor para el margen izquierdo y derecho.

Por ejemplo, la siguiente regla le aplicaría un margen de 10px arriba y abajo, y 20px a los lados.

p {
margin: 10px 20px;
}

margin también puede recibir tres valores: el valor para el margen superior, y el margen de los lados, y el margen inferior.

Por ejemplo, la siguiente regla le aplicaría un margen de 10px arriba, 20px a los lados y 30px abajo:

p {
margin: 10px 20px 30px;
}

Bordes

Las propiedades CSS border-width, border-style y border-color nos permiten definir el ancho, el estilo y el color del borde de un elemento.

El siguiente ejemplo definiría un borde sólido de 1px de color rojo:

p {
border-width: 1px;
border-style: solid;
border-color: red;
}

Las opciones más comunes de border-style son solid (sólido), dotted (punteado), dashed (guiones) y double (doble).

Cada una de las propiedades puede recibir de uno a 4 valores, muy parecido a como funciona con los márgenes:

  • Un valor: aplica a los 4 lados (p.e. border-width: 5px).

  • Dos valores: el primero para arriba y abajo, el segundo a los lados. (p.e. border-width: 5px 10px)

  • Tres valores: el primero para arriba, el segundo para los lados y el tercero para abajo (p.e. border-width: 5px 10px 20px).

  • Cuatro valores: arriba, derecha, abajo, izquierda (p.e. border-width: 1px 2px 3px 4px).

Atajo con border

Puedes utilizar el atajo border para definir el ancho, estilo y color de todos los lados:

p {
border: 1px solid blue;
}

También puedes utilizar el atajo pero para cada uno de los lados:

p {
border-top: 1px solid blue;
border-right: 2px dashed red;
border-bottom: 3px dotted yellow;
border-left: 4px double green;
}

Bordes redondeados

La propiedad border-radius se utiliza para agregar bordes redondeados a un elemento:

p {
border: 2px solid red;
border-radius: 5px;
}

Puedes asignar la propiedad border-radius a cada esquina individualmente con border-top-left-radius, border-top-right-radius, border-bottom-left-radius y border-bottom-right-radius.

Márgenes externas (padding)

El padding se utiliza para definir el margen interno de un elemento.

Al igual que con los márgenes externos, CSS tiene propiedades para definir el padding de cada lado del elemento: padding-top, padding-right, padding-bottom y padding-left.

p {
padding-top: 5px;
padding-right: 5px;
padding-bottom: 5px;
padding-left: 5px;
}

Atajo con padding

Para reducir el código puedes especificar todos los paddings en una sola propiedad padding:

p {
padding: 5px 5px 5px 5px;
}

padding puede recibir uno, dos, tres y cuatro valores como margin:

  • Un valor: aplica a los 4 lados.

  • Dos valores: el primero aplica arriba y abajo, el segundo a los lados.

  • Tres valores: el primero arriba, el segundo a los lados y el tercero abajo.

  • Cuatro valores: arriba, derecha, abajo, izquierda.

Ancho y alto

Puedes especificar el ancho y el alto de un elemento utilizando las propiedades width y height:

p {
width: 400px;
height: 300px;
}

El padding y el borde suman al ancho y alto del elemento.