Fondos (backgrounds)

Para definir el color, la imagen, la posición, etc. de fondo de un elemento utiliza las siguientes propiedades CSS:

  • background-color: define el color de fondo.

  • background-image: define la imagen de fondo.

  • background-position: define la ubicación de la imagen de fondo.

  • background-repeat: define si se repite la imagen de fondo horizontal y verticalmente.

  • background-attachment: define si la imagen se mantiene fija o se desplaza con la página.

background-color

Esta propiedad define el color de fondo del elemento. Por ejemplo, para que todos los párrafos tengan un color azul utiliza la siguiente regla:

p {
background-color: blue;
}

También puedes usar un valor hexadecimal (p.e. #0000FF) o RGB (p.e. rgb(255, 0, 0)).

background-image

Define la imagen de fondo. Por ejemplo:

p {
background-image: url('mi-imagen.jpg')
}

La ruta de la imagen puede ser relativa al documento o un URL a una imagen en Internet.

background-repeat

Por defecto, cuando utilizas una imagen de fondo, la imagen se repite tanto horizontal como verticalmente (cuando no ocupa el ancho o alto del elemento).

Para cambiar este comportamiento utiliza la propiedad background-repeat que recibe las opciones:

  • no-repeat: no repetir horizontal ni verticalmente.

  • repeat-x: repetir solo horizontalmente.

  • repeat-y: repetir solo verticalmente.

background-position

Nos permite controlar la posición y el tamaño de la imagen cuando background-repeat es no-repeat.

background-position recibe dos valores: la posición vertical y horizontal.

Los valores de background-position pueden ser una posición en palabras (p.e. top left), un porcentaje o una posición en pixeles u otra unidad.

Por ejemplo, la siguiente regla centra la imagen en el componente:

p {
background-image: url('imagen.jpg');
background-repeat: no-repeat;
background-position: center center;
}

background-size

background-size nos permite cambiar el tamaño de la imagen de fondo.

background-size puede recibir dos valores: el ancho y el alto en porcentaje, pixeles o alguna otra unidad. Por ejemplo:

p {
background-image: url('imagen.jpg');
background-repeat: no-repeat;
background-size: 60px 40px;
}

background-size también puede recibir dos valores especiales:

  • cover: la imagen se estira hasta que ocupe todo el área del elemento.

  • contain: la imagen se estira hasta que el alto o el ancho ocupen el alto o ancho del contenedor.

background-attachment

Por defecto, cuando utilizas una imagen de fondo, la imagen se desplaza con la página.

background-attachment nos permite cambiar ese comportamiento y dejar la imagen fija cuando la página se desplace creando un efecto interesante:

background-image: url('imagen.jpg');
background-repeat: no-repeat;
background-attachment: fixed;

El atajo background

Puedes especificar varias propiedades de fondo en una línea con background. Por ejemplo:

background: #00ff00 url("smiley.gif") no-repeat fixed center;

El orden es: background-color, background-image, background-position/background-size, background-repeat y background-attachment.

No importa si omites algunas de las propiedades. Por ejemplo, las siguientes declaraciones son válidas:

background: red;
background: url('mi-imagen');
background: red url('mi-imagen');
background: red url('mi-imagen') fixed center;