CSS
Tutorial CSS: Propiedades de fondo
CSS propiedades fondo: definición y uso. Domina el uso de propiedades de fondo en CSS con ejemplos prácticos y detallados.
Aprende CSS GRATIS y certifícate¿Qué son las propiedades de fondo en CSS y para qué sirven?
Las propiedades de fondo en CSS son un conjunto de atributos que permiten definir el aspecto visual del fondo de un elemento HTML. Estas propiedades hacen posible ajustar diferentes características del fondo, como el color, la imagen, la repetición de la imagen, la posición y el tamaño de la misma, entre otras particularidades. Aplicar correctamente las propiedades de fondo en un diseño web es esencial para mejorar la experiencia de usuario, hacerse cargo de cuestiones estéticas y acceder a funcionalidades avanzadas como la implementación de gradientes. Las principales propiedades de fondo en CSS incluyen:
background-color
: Permite definir el color del fondo de un elemento.background-image
: Permite establecer una imagen de fondo para un elemento.background-repeat
: Controla la forma en que se repite una imagen de fondo.background-position
: Determina la posición inicial de la imagen de fondo dentro del elemento.background-size
: Define el tamaño que se le va a dar a la imagen de fondo.background-attachment
: Establece si la imagen de fondo se desplaza junto con el resto del contenido de la página cuando se hace scroll o si permanece fija.background-clip
: Indica si el área de pintura de fondo se extiende por todo el cuadro del borde, el padding o el contenido.background-origin
: Establece el punto de origen del área de pintura del fondo.background
: Es una propiedad abreviada que permite definir algunas de las propiedades mencionadas en una sola declaración.
El uso correcto de estas propiedades permite crear fondos personalizados que pueden ser tanto estáticos como dinámicos (usando gradientes). Aprovechando estas herramientas, los desarrolladores pueden desarrollar interfaces de usuario visualmente atractivas y funcionales, dependiendo de las necesidades específicas de su proyecto. Aquí un ejemplo básico de uso:
.elemento {
background-color: #f0f0f0; /* Color de fondo */
background-image: url('imagen.jpg'); /* Imagen de fondo */
background-repeat: no-repeat; /* Sin repetición */
background-position: center; /* Centrada */
background-size: cover; /* Cubrir todo el contenido */
background-attachment: fixed; /* Fondo fijo */
background-clip: padding-box; /* Solo caja de padding */
background-origin: border-box; /* Origen en el borde */
}
En este ejemplo, todas las propiedades de fondo se combinan para crear un fondo muy específico. La propiedad background
también puede abreviar múltiples propiedades en una sola línea de código:
.elemento {
background: #f0f0f0 url('imagen.jpg') no-repeat center/cover fixed padding-box border-box;
}
De esta manera, se logra el mismo efecto usando la propiedad abreviada. Aprovechar el uso de estas propiedades puede conducir a interfaces adaptativas, manteniendo consistencia y estética desde pequeños teléfonos móviles hasta pantallas de alta resolución.
La propiedad background-color
La propiedad background-color
en CSS permite especificar el color de fondo de un elemento HTML. Esta propiedad es fundamental y uno de los primeros pasos en la personalización visual de un diseño web. La sintaxis básica de background-color
es simple y se puede utilizar de diferentes maneras, incluyendo valores de color en formato hexadecimal, RGB, RGBA, HSL, y HSLA, así como nombres de colores predefinidos.
Sintaxis básica
.elemento {
background-color: <valor_de_color>;
}
Donde <valor_de_color>
puede ser:
- Un valor hexadecimal (por ejemplo,
#ff0000
para rojo). - Un valor RGB (por ejemplo,
rgb(255, 0, 0)
). - Un valor RGBA, que incluye la opacidad (por ejemplo,
rgba(255, 0, 0, 0.5)
). - Un valor HSL (por ejemplo,
hsl(0, 100%, 50%)
). - Un valor HSLA, que incluye la opacidad (por ejemplo,
hsla(0, 100%, 50%, 0.5)
). - Un nombre de color inteligente (por ejemplo,
red
).
Ejemplo de uso con valores hexadecimales
.header {
background-color: #3498db; /* Azul */
}
.footer {
background-color: #2ecc71; /* Verde */
}
Ejemplo de uso con valores RGB y RGBA
.section {
background-color: rgb(255, 165, 0); /* Naranja */
}
.transparent-section {
background-color: rgba(255, 165, 0, 0.5); /* Naranja con 50% de opacidad */
}
Ejemplo de uso con valores HSL y HSLA
.main {
background-color: hsl(120, 100%, 50%); /* Verde */
}
.faded-box {
background-color: hsla(120, 100%, 50%, 0.3); /* Verde con 30% de opacidad */
}
Nombre de colores predefinidos
CSS también permite usar nombres de colores predefinidos. Por ejemplo:
.navbar {
background-color: navy; /* Azul marino */
}
.button {
background-color: goldenrod; /* Vara de oro */
}
Especificidad y herencia
La propiedad background-color
es heredable, lo que significa que los elementos hijos pueden heredar el color de fondo del elemento padre si así se define explícitamente o por defecto. Por ejemplo:
.parent {
background-color: lightgray;
}
.child {
background-color: inherit; /* Hereda el color gris claro del elemento padre */
}
Consideraciones de accesibilidad
Al usar background-color
, es esencial considerar la accesibilidad, garantizando suficiente contraste entre el color de fondo y el color del texto. Utilizar herramientas como el "Color Contrast Checker" ayuda a asegurar que el contenido sea legible para todos los usuarios, incluidas personas con discapacidades visuales.
Ejemplo avanzado integrando background-color
.card {
background-color: #ffffff; /* Fondo blanco */
padding: 1rem;
border-radius: 8px;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}
.card-header {
background-color: #f8f9fa; /* Fondo gris claro */
font-size: 1.25rem;
padding: 0.5rem 1rem;
}
.card-body {
background-color: #ffffff; /* Fondo blanco */
padding: 1rem;
color: #333333;
}
.card-footer {
background-color: #f1f1f1; /* Fondo gris muy claro */
padding: 0.5rem 1rem;
text-align: right;
}
En este ejemplo, una tarjeta (card
) se estiliza usando diferentes colores de fondo para el encabezado, cuerpo y pie de página, creando una separación visual clara y agradable.
La propiedad background-image
La propiedad background-image
en CSS permite establecer una o más imágenes de fondo para un elemento HTML. Esta propiedad puede aceptar varias URLs de imágenes, así como valores de gradiente (lineares y radiales), y su uso puede contribuir significativamente a mejorar el diseño visual de una página web. La sintaxis básica y algunas de sus características avanzadas se detallan a continuación.
Sintaxis básica
.elemento {
background-image: url('imagen.jpg');
}
El valor url('imagen.jpg')
indica la ubicación de la imagen. Esta URL puede ser relativa o absoluta.
Múltiples imágenes de fondo
Es posible definir múltiples imágenes de fondo para un mismo elemento. Las imágenes se listan separadas por comas, y la primera imagen será la que se renderice más cerca del usuario (al frente).
.elemento {
background-image: url('imagen1.jpg'), url('imagen2.png');
}
Gradientes como fondo
CSS admite el uso de gradientes predefinidos, como linear-gradient
y radial-gradient
, que pueden usarse en lugar de las imágenes tradicionales.
.elemento {
background-image: linear-gradient(to right, #ff7e5f, #feb47b);
}
.elemento-radial {
background-image: radial-gradient(circle, #ff7e5f, #feb47b);
}
Ejemplo avanzado usando múltiples fondos con gradientes
Se pueden combinar imágenes y gradientes para crear efectos complejos.
.elemento {
background-image: url('patron.png'), linear-gradient(to bottom, rgba(255, 255, 255, 0.5), rgba(0, 0, 0, 0.5));
background-blend-mode: overlay;
}
En este ejemplo, se usa un patrón de imagen (patron.png
) combinado con un gradiente lineal, y la propiedad background-blend-mode
para mezclar ambos fondos.
Compatibilidad con múltiples versiones de imagen
Para mejorar la carga en diferentes dispositivos, se pueden definir diferentes versiones de la misma imagen, adaptadas a varias resoluciones.
.elemento {
background-image: url('imagen.jpg');
background-image: image-set(
url('imagen-lowres.jpg') 1x,
url('imagen-highres.jpg') 2x
);
}
Imágenes vectoriales
Las imágenes en formaiconos to SVG pueden ser usadas como fondo. SVG es un formato vectorial y escalable, ideal para gráficos e que deban mantener la calidad en diversas resoluciones.
.elemento {
background-image: url('imagen.svg');
}
Valores especiales
Ninguno
El valor none
quita cualquier imagen de fondo previamente aplicada.
.elemento {
background-image: none;
}
Ejemplo completo integrando diversas propiedades de fondo
Para ilustrar todas las capacidades de la propiedad background-image
, aquí un ejemplo con varias propiedades combinadas:
.contenedor {
width: 100%;
height: 500px;
background-image: url('background.jpg'), linear-gradient(to bottom, rgba(0,0,0,0.5), rgba(0,0,0,0.5));
background-repeat: no-repeat, repeat-x;
background-position: center, top;
background-size: cover, contain;
}
En este ejemplo, se aplican dos fondos: una imagen (background.jpg
) y un gradiente lineal. La imagen de fondo no se repite (no-repeat
), mientras que el gradiente se repite horizontalmente (repeat-x
); la imagen ocupa todo el contenedor (cover
), y el gradiente se adapta (contain
). Además, las posiciones de fondo están controladas de forma independiente (center
para la imagen y top
para el gradiente).
Sugerencias para el rendimiento
- Optimización de imágenes: Usa imágenes optimizadas para la web, preferiblemente en formatos de compresión como JPEG o WebP.
- Carga diferida: Considera la carga diferida (lazy loading) de imágenes para mejorar el rendimiento de la página.
- Sprites CSS: Utiliza sprites CSS para combinar varias imágenes en un solo archivo, reduciendo las peticiones HTTP.
La propiedad background-repeat
La propiedad background-repeat
en CSS controla cómo se repite una imagen de fondo dentro de un elemento. Permite especificar si la imagen se repetirá horizontalmente, verticalmente, en ambas direcciones o no se repetirá en absoluto. Esta propiedad es fundamental para diseños que utilizan imágenes de fondo, especialmente cuando se desea crear patrones o evitar la repetición de imágenes de gran tamaño.
Sintaxis básica
.elemento {
background-repeat: <valor>;
}
Valores posibles
repeat
: Repite la imagen tanto horizontalmente como verticalmente. Este es el valor por defecto.repeat-x
: Repite la imagen solamente en la dirección horizontal.repeat-y
: Repite la imagen solamente en la dirección vertical.no-repeat
: No repite la imagen, mostrará la imagen solo una vez.space
: Repite la imagen sin recortarla y dejará espacio entre las imágenes.round
: Escala la imagen para que se ajuste tanto horizontalmente como verticalmente al contenedor.
Ejemplos de uso
Repetición en ambas direcciones (valor por defecto)
.elemento {
background-image: url('pattern.png');
background-repeat: repeat;
}
Repetición horizontal solamente
.elemento {
background-image: url('pattern.png');
background-repeat: repeat-x;
}
Repetición vertical solamente
.elemento {
background-image: url('pattern.png');
background-repeat: repeat-y;
}
Sin repetición
.elemento {
background-image: url('imagen.png');
background-repeat: no-repeat;
}
Repetición con espacio entre las imágenes
.elemento {
background-image: url('pattern.png');
background-repeat: space;
}
Repetición con ajuste de escala
.elemento {
background-image: url('pattern.png');
background-repeat: round;
}
Ejemplo avanzado
.contenedor {
width: 300px;
height: 300px;
background-image: url('pattern.png');
background-repeat: repeat-x;
background-position: center;
background-size: 50px 50px;
}
En este ejemplo, la imagen de fondo se repite solo horizontalmente (repeat-x
), se centra verticalmente (background-position: center
), y se ajusta a un tamaño específico (background-size: 50px 50px
).
Compatibilidad y soporte
La propiedad background-repeat
es ampliamente soportada en todos los navegadores modernos y es parte de la especificación CSS1, por lo que se puede utilizar sin preocupaciones de compatibilidad en la mayoría de los proyectos web.
Consideraciones de diseño
Al utilizar background-repeat
, es importante considerar el tamaño y la forma de la imagen para asegurar que se adapte correctamente al diseño deseado. Las imágenes de fondo repetidas pueden crear patrones visualmente atractivos, pero también pueden causar problemas de rendimiento si no se optimizan adecuadamente. Es recomendable usar imágenes ligeras y, si es posible, comprimidas para mejorar los tiempos de carga y el rendimiento general de la página web.
.contenedor-optimizado {
width: 100%;
height: 500px;
background-image: url('optimized-pattern.png');
background-repeat: repeat;
background-size: 100px 100px; /* Ajuste del tamaño de la imagen para un patrón suave */
}
Esta configuración asegura que la imagen de fondo se repite en ambas direcciones, creando un patrón uniforme y estilizado.
La propiedad background-position
La propiedad background-position
en CSS establece la posición inicial de una imagen de fondo dentro de un contenedor. Esta propiedad es crucial para controlar la ubicación exacta de una imagen de fondo, especialmente en diseños que requieren precisión estética. Puedes especificar la posición usando palabras clave, valores numéricos, o unidades de medida como píxeles (px
), porcentajes (%
), entre otros.
Sintaxis básica
.elemento {
background-position: <valor>;
}
Valores posibles
Palabras clave
left top
: Posiciona la imagen en la esquina superior izquierda.left center
: Posiciona la imagen en el centro vertical del lado izquierdo.left bottom
: Posiciona la imagen en la esquina inferior izquierda.right top
: Posiciona la imagen en la esquina superior derecha.right center
: Posiciona la imagen en el centro vertical del lado derecho.right bottom
: Posiciona la imagen en la esquina inferior derecha.center top
: Posiciona la imagen en el centro horizontal en la parte superior.center center
: Posiciona la imagen en el centro (tanto horizontal como verticalmente).center bottom
: Posiciona la imagen en el centro horizontal en la parte inferior.
.elemento {
background-image: url('imagen.jpg');
background-position: center center; /* Centra la imagen */
}
Valores numéricos
Los valores numéricos pueden especificarse en píxeles, ems o porcentajes para un control más preciso.
background-position: 50% 50%;
: Centra la imagen. Este es equivalente acenter center
.background-position: 10px 20px;
: Posiciona la imagen a 10 píxeles desde la izquierda y a 20 píxeles desde la parte superior.background-position: 0 0;
: Posiciona la imagen en la esquina superior izquierda.
.elemento {
background-image: url('imagen.jpg');
background-position: 25px 50px; /* 25 píxeles desde la izquierda y 50 píxeles desde la parte superior */
}
Valores mixtos
- Es posible combinar porcentajes y píxeles según las necesidades del diseño.
.elemento {
background-image: url('imagen.jpg');
background-position: 50% 100px; /* 50% desde la izquierda y 100 píxeles desde la parte superior */
}
Shorthand en combinación con otras propiedades
La propiedad background
permite abreviar múltiples propiedades de fondo en una sola declaración, incluyendo background-position
.
.elemento {
background: url('imagen.jpg') no-repeat center/cover;
}
Consideraciones avanzadas
Múltiples imágenes de fondo
Para múltiples imágenes, se pueden especificar varias posiciones de fondo separadas por comas.
.elemento {
background-image: url('imagen1.jpg'), url('imagen2.png');
background-position: left top, right bottom; /* Posiciona las imágenes en las esquinas opuestas */
}
Usando calc()
CSS calc()
puede utilizarse para cálculos más complejos.
.elemento {
background-image: url('imagen.jpg');
background-position: calc(100% - 20px) calc(100% - 10px);
}
Compatibilidad y soporte
La propiedad background-position
es compatible con todos los navegadores modernos y ha sido parte de la especificación CSS2. No debería haber problemas de compatibilidad en la mayoría de proyectos web actuales.
Ejemplo avanzado
.contenedor {
width: 200px;
height: 200px;
background-image: url('imagen.jpg');
background-position: top right;
background-repeat: no-repeat;
border: 1px solid #000;
}
En este ejemplo, la imagen de fondo se posiciona en la esquina superior derecha, no se repite, y el contenedor tiene un borde para resaltar su área.
Aprovechar la versatilidad y precisión de background-position
puede elevar significativamente la calidad visual de los elementos de fondo en una página web, logrando efectos y posicionamientos específicos que mejoran la experiencia del usuario y la estética general del diseño.
La propiedad background-size
La propiedad background-size
en CSS permite definir las dimensiones que tendrá la imagen de fondo de un elemento. Es especialmente útil para adaptar imágenes de fondo a distintos tamaños de contenedores, mejorar la experiencia visual y garantizar la responsividad del diseño.
Sintaxis básica
.elemento {
background-size: <valor>;
}
Valores posibles
auto
: Este es el valor por defecto. Mantiene el tamaño original de la imagen.<ancho> <alto>
: Especifica el ancho y el alto de la imagen. Puede utilizar unidades como píxeles (px
), ems (em
) o porcentajes (%
).cover
: Escala la imagen para cubrir todo el contenedor, manteniendo la relación de aspecto. La imagen puede recortarse para ajustarse al contenedor.contain
: Escala la imagen para asegurarse de que toda ella sea visible dentro del contenedor, manteniendo la relación de aspecto. La imagen no se recortará, pero pueden aparecer áreas vacías en el contenedor.
Ejemplos de uso
Tamaño automático (valor por defecto)
.elemento {
background-image: url('imagen.jpg');
background-size: auto;
}
Tamaño específico en píxeles
.elemento {
background-image: url('imagen.jpg');
background-size: 100px 50px;
}
Tamaño específico en porcentajes
.elemento {
background-image: url('imagen.jpg');
background-size: 50% 50%;
}
Escalar para cubrir el contenedor
.elemento {
background-image: url('imagen.jpg');
background-size: cover;
}
Escalar para contener la imagen sin recorte
.elemento {
background-image: url('imagen.jpg');
background-size: contain;
}
Uso avanzado de background-size
Multitudes de imágenes de fondo
Para elementos con múltiples imágenes de fondo, se pueden especificar diferentes valores de tamaño para cada imagen, separados por comas.
.elemento {
background-image: url('imagen1.jpg'), url('imagen2.png');
background-size: 100px 100px, contain;
}
Uso de unidades relativas
Adicionalmente a los píxeles y los porcentajes, podemos utilizar unidades relativas como em
o vh
y vw
.
.elemento {
background-image: url('imagen.jpg');
background-size: 10em 5em;
}
Compatibilidad y soporte
La propiedad background-size
es ampliamente soportada en todos los navegadores modernos, incluidos Google Chrome, Mozilla Firefox, Safari, Microsoft Edge y Opera. Fue introducida en CSS3 y se puede utilizar con confianza en la mayoría de los proyectos web actuales.
Ejemplo avanzado integrando background-size
.contenedor {
width: 300px;
height: 300px;
background-image: url('imagen.jpg');
background-size: cover;
background-position: center;
background-repeat: no-repeat;
border: 1px solid #000;
}
En este ejemplo, la imagen de fondo se escala para cubrir todo el contenedor (cover
), se centra (background-position: center
), no se repite (no-repeat
), y el contenedor tiene un borde para resaltar su área.
La propiedad background-size
es esencial para crear diseños responsivos y visualmente atractivos al asegurar que las imágenes de fondo se dimensionen correctamente en diferentes dispositivos y tamaños de pantalla, mejorando significativamente la estética y funcionalidad del diseño web.
La propiedad background-attachment
La propiedad background-attachment
en CSS define cómo se comporta una imagen de fondo con respecto al desplazamiento de la página (scrolling). Básicamente, controla si la imagen de fondo se desplaza con el contenido (scroll) o si permanece fija en su posición independientemente del movimiento de la página.
Sintaxis básica
.elemento {
background-attachment: <valor>;
}
Valores posibles
scroll
: Este es el valor por defecto. La imagen de fondo se desplaza con el contenido del elemento. Si el usuario hace scroll, la imagen de fondo se moverá junto con el contenido.fixed
: La imagen de fondo permanece fija en su posición relativa a la ventana del navegador. No se desplaza con el contenido del elemento.local
: La imagen de fondo se desplaza junto con el contenido del elemento contenedor. Similar ascroll
, pero relativo al contenedor en lugar de a toda la página.initial
: Define el valor por defecto.inherit
: Hereda el valor debackground-attachment
de su elemento padre.
Ejemplos de uso
Desplazamiento con el contenido (valor por defecto)
.elemento-scroll {
background-image: url('imagen.jpg');
background-attachment: scroll;
}
Imagen fija
.elemento-fixed {
background-image: url('imagen.jpg');
background-attachment: fixed;
}
Desplazamiento relativo al contenedor local
.elemento-local {
background-image: url('imagen.jpg');
background-attachment: local;
}
Ejemplo avanzado
Uso de background-attachment combinado con otras propiedades de fondo
.contenedor-scroll {
width: 100%;
height: 500px;
overflow-y: scroll;
background-image: url('imagen.jpg');
background-repeat: no-repeat;
background-position: center;
background-size: cover;
background-attachment: local;
}
.contenedor-fixed {
width: 100%;
height: 500px;
background-image: url('imagen.jpg');
background-repeat: no-repeat;
background-position: center;
background-size: cover;
background-attachment: fixed;
}
En este ejemplo, el contenedor .contenedor-scroll
tiene un fondo que se desplaza con el contenido al hacer scroll, mientras que el contenedor .contenedor-fixed
tiene un fondo fijo que no se desplaza.
Consideraciones de rendimiento
El uso de la propiedad background-attachment: fixed
puede tener implicaciones en el rendimiento, especialmente en dispositivos móviles y navegadores antiguos, debido al esfuerzo adicional necesario para mantener la posición fija del fondo durante el desplazamiento.
Compatibilidad del navegador
La propiedad background-attachment
es compatible con todos los navegadores modernos, incluyendo Chrome, Firefox, Safari, Edge y Opera. Sin embargo, ten en cuenta que algunos navegadores móviles pueden no manejar fixed
de manera eficiente debido a las limitaciones de rendimiento.
Caso de uso práctico
Fondo fijo para un título hero
.hero {
height: 100vh;
background-image: url('hero-background.jpg');
background-repeat: no-repeat;
background-position: center;
background-size: cover;
background-attachment: fixed;
display: flex;
align-items: center;
justify-content: center;
color: white;
text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
}
En este ejemplo, el fondo de la sección .hero
permanece fijo mientras se desplaza el resto del contenido de la página, creando un efecto visual atractivo.
La propiedad background-attachment
es fundamental para controlar la experiencia de usuario al manejar fondos en diseños web, y su uso adecuado puede mejorar significativamente la estética visual del diseño, así como proporcionar efectos de interacción más sofisticados.
La propiedad background-clip y background-origin
Las propiedades background-clip
y background-origin
en CSS afectan el comportamiento y visualización del área de pintura y del origen de las imágenes de fondo en un elemento. Estas propiedades son útiles para situaciones específicas de diseño en los que se necesita un control más detallado sobre la apariencia de los fondos.
background-clip
La propiedad background-clip
establece los límites dentro de los cuales se dibuja el fondo del elemento. Esta propiedad puede ser particularmente útil para tener un mayor control sobre las partes del elemento que se ven afectadas por las imágenes o colores de fondo.
Sintaxis
.elemento {
background-clip: <valor>;
}
Valores posibles
border-box
: El fondo se extiende hasta el borde exterior del elemento (incluye el borde). Este es el valor predeterminado.padding-box
: El fondo se detiene en el borde interior del padding. El borde del elemento no es cubierto por el fondo.content-box
: El fondo se aplica únicamente dentro del área de contenido. No cubre el padding ni el borde.text
: Aplica el fondo solamente al texto del elemento. Está disponible desde CSS3 y soportado en la mayoría de navegadores modernos.
Ejemplos de uso
Uso del valor border-box (valor por defecto)
.elemento-border-box {
border: 5px solid black;
background-image: url('imagen.jpg');
background-clip: border-box;
}
Uso del valor padding-box
.elemento-padding-box {
border: 5px solid black;
padding: 20px;
background-image: url('imagen.jpg');
background-clip: padding-box;
}
Uso del valor content-box
.elemento-content-box {
border: 5px solid black;
padding: 20px;
background-image: url('imagen.jpg');
background-clip: content-box;
}
Uso del valor text
.elemento-text {
font-size: 5rem;
background-image: url('imagen.jpg');
background-clip: text;
color: transparent;
}
background-origin
La propiedad background-origin
define el punto desde el cual se mide la posición del fondo de un elemento. Esto es útil para ajustar cómo se posicionan las imágenes de fondo en relación con los diferentes componentes de un cuadro de contenedor.
Sintaxis
.elemento {
background-origin: <valor>;
}
Valores posibles
border-box
: La posición del fondo se mide desde el borde exterior del elemento.padding-box
: La posición del fondo se mide desde el borde interior del padding. Este es el valor predeterminado.content-box
: La posición del fondo se mide desde el borde del área de contenido, excluyendo el padding y el borde.
Ejemplos de uso
Uso del valor border-box
.elemento-border-box {
border: 5px solid red;
padding: 20px;
background-image: url('pattern.png');
background-origin: border-box;
background-position: top left;
}
Uso del valor padding-box (valor por defecto)
.elemento-padding-box {
border: 5px solid red;
padding: 20px;
background-image: url('pattern.png');
background-origin: padding-box;
background-position: top left;
}
Uso del valor content-box
.elemento-content-box {
border: 5px solid red;
padding: 20px;
background-image: url('pattern.png');
background-origin: content-box;
background-position: top left;
}
Ejemplo combinado de background-clip y background-origin
.elemento-combinado {
width: 300px;
height: 300px;
border: 10px solid blue;
padding: 20px;
background-image: url('imagen.jpg');
background-clip: padding-box;
background-origin: border-box;
background-position: center;
background-repeat: no-repeat;
}
En este ejemplo, el fondo se origina en el límite exterior del borde (border-box
) y se pinta dentro del área de padding (padding-box
).
Compatibilidad y rendimiento
Ambas propiedades, background-clip
y background-origin
, son ampliamente compatibles con los navegadores modernos, incluidos Chrome, Firefox, Safari, Edge y Opera. Sin embargo, al trabajar con propiedades avanzadas de fondo, especialmente cuando se usan animaciones o imágenes de alta resolución, es importante considerar el impacto en el rendimiento y probar en dispositivos y navegadores específicos para garantizar una experiencia de usuario fluida.
El uso adecuado de background-clip
y background-origin
proporciona un control detallado y preciso sobre cómo y dónde se muestra el fondo en elementos HTML, permitiendo un diseño sofisticado y específico según las necesidades del proyecto.
Gradientes de fondo
Los gradientes de fondo en CSS permiten crear transiciones suaves entre dos o más colores, proporcionando flexibilidad y dinamismo en el diseño de una página web. A diferencia de las imágenes, los gradientes son generados por el navegador y pueden ser completamente adaptativos a cualquier tamaño de contenedor. CSS admite principalmente dos tipos de gradientes: lineales (linear-gradient
) y radiales (radial-gradient
).
Gradientes lineales
Los gradientes lineales se crean cambiando el color a lo largo de una línea recta. La dirección, las combinaciones de colores y las posiciones pueden ser definidas para ajustar el diseño.
.elemento-linear {
background: linear-gradient(to right, #ff7e5f, #feb47b);
}
En este ejemplo, el gradiente lineal se extiende de izquierda a derecha, comenzando con el color #ff7e5f
y terminando en #feb47b
.
Dirección del gradiente
La dirección de un gradiente lineal puede especificarse usando palabras clave como to bottom
, to right
, etc., o ángulos en grados.
.elemento-direction {
background: linear-gradient(45deg, #ff7e5f, #feb47b);
}
Aquí, el gradiente se aplica en un ángulo de 45 grados.
Puntos de color
Se pueden definir varios colores en un gradiente y establecer su posición exacta en porcentajes o unidades absolutas.
.elemento-multiple {
background: linear-gradient(to right, #ff7e5f 0%, #feb47b 50%, #86a8e7 100%);
}
En este caso, el color comienza en #ff7e5f
en el 0%, cambia a #feb47b
en el 50%, y finaliza en #86a8e7
al 100%.
Gradientes radiales
Los gradientes radiales se originan en un punto central y se extienden hacia afuera en forma de un círculo o elipse.
.elemento-radial {
background: radial-gradient(circle, #ff7e5f, #feb47b);
}
En este ejemplo, el gradiente radial comienza en el centro del contenedor y se expande con #ff7e5f
y termina en #feb47b
.
Forma y tamaño del gradiente
Puedes definir la forma (circle
o ellipse
) y el tamaño (closest-side
, farthest-corner
, etc.).
.elemento-shape-size {
background: radial-gradient(closest-side at 50% 50%, #ff7e5f, #feb47b);
}
Aquí, el gradiente radial tiene su forma más cercana a los lados (closest-side
) y comienza en el punto medio del contenedor (50% 50%
).
Gradientes cónicos
CSS también admite gradientes cónicos, útiles para efectos circulares.
.elemento-conic {
background: conic-gradient(from 0deg at 50% 50%, #ff7e5f, #feb47b, #86a8e7);
}
Este ejemplo muestra un gradiente cónico que comienza desde los 0 grados en el centro del contenedor.
Utilización avanzada
Gradientes con transparencia
Puedes usar valores RGBA para permitir transiciones con transparencia.
.elemento-transparente {
background: linear-gradient(to right, rgba(255, 126, 95, 0.8), rgba(134, 168, 231, 0.8));
}
En este caso, ambos colores del gradiente tienen una transparencia del 80%.
Superposición de gradientes
Se pueden superponer varios gradientes para crear efectos complejos.
.elemento-superposicion {
background: linear-gradient(rgba(0,0,0,0.5), rgba(0,0,0,0.5)), url('imagen.jpg');
background-blend-mode: overlay;
}
Aquí, un gradiente oscuro se superpone sobre una imagen de fondo, mezclándose mediante la propiedad background-blend-mode
.
Ejemplo completo
.contenedor-gradiente {
width: 300px;
height: 300px;
background: linear-gradient(135deg, #ff7e5f, #feb47b);
border: 2px solid #000;
}
Este ejemplo aplica un gradiente lineal a un contenedor de 300px por 300px con un borde; el gradiente se extiende en un ángulo de 135 grados.
Los gradientes de fondo son fundamentales en CSS para proporcionar una estética moderna y dinámica. Aprovechando sus diversas configuraciones, puedes crear efectos visuales únicos, mejorando significativamente la experiencia del usuario.
Ejercicios de esta lección Propiedades de fondo
Evalúa tus conocimientos de esta lección Propiedades de fondo con nuestros retos de programación de tipo Test, Puzzle, Código y Proyecto con VSCode, guiados por IA.
Modelo de caja
Propiedad 'display'
Modelo de caja
Propiedades de posicionamiento
Sombras en texto y cajas
Variables en CSS
Grid en diseños de cuadrícula
Propiedades de texto
Animaciones y transiciones
Introducción a CSS
Selectores avanzados
Flexbox en diseños modernos
Sintaxis básica
Sintaxis
Estilos de fuente
Sintaxis avanzada
Herencia y cascada
Selectores básicos
Diseño responsive con media queries
Pseudo-clases y pseudo-elementos
Flexbox en diseños modernos
Elementos 'float' y 'clear'
Propiedades de texto
Propiedades de fondo
Metodologías BEM, SMACSS, OOCSS
Selectores básicos
Todas las lecciones de CSS
Accede a todas las lecciones de CSS y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.
Introducción A Css
Introducción Y Entorno
Sintaxis
Sintaxis De Selectores Y Propiedades
Selectores Básicos
Sintaxis De Selectores Y Propiedades
Herencia Y Cascada
Sintaxis De Selectores Y Propiedades
Pseudo-clases Y Pseudo-elementos
Sintaxis De Selectores Y Propiedades
Estilos De Fuente
Estilización De Texto Y Fondo
Propiedades De Texto
Estilización De Texto Y Fondo
Sombras En Texto Y Cajas
Estilización De Texto Y Fondo
Propiedades De Fondo
Estilización De Texto Y Fondo
Modelo De Caja
Modelo Caja Y Posicionamiento
Propiedades De Posicionamiento
Modelo Caja Y Posicionamiento
Propiedad 'Display'
Modelo Caja Y Posicionamiento
Elementos 'Float' Y 'Clear'
Modelo Caja Y Posicionamiento
Flexbox Para Crear Layouts Y Estructuras
Flexbox Y Grid
Css Grid Para Crear Layouts Y Estructuras
Flexbox Y Grid
Animaciones Y Transiciones
Técnicas Modernas Y Metodologías
Variables En Css
Técnicas Modernas Y Metodologías
Diseño Responsive Con Media Queries
Técnicas Modernas Y Metodologías
Metodologías De Escritura En Css
Técnicas Modernas Y Metodologías
Introducción A Tailwind Css
Introducción Y Entorno
Instalación De Tailwind Css
Introducción Y Entorno
Fundamentos Del Sistema De Utility-first
Fundamentos
Fundamentos Del Diseño Responsive
Fundamentos
Tipografía Y Fuentes En Tailwind Css
Clases De Utilidad
Clases De Tamaño De Tailwind Css
Clases De Utilidad
Utilidades De Espaciado Y Alineación De Tailwind Css
Clases De Utilidad
Clases De Colores Y Fondo De Tailwind Css
Clases De Utilidad
Clases De Bordes De Tailwind Css
Clases De Utilidad
Hover, Focus Y Estado De Tailwind Css
Clases De Utilidad
Transiciones Y Animaciones De Tailwind Css
Clases De Utilidad
Contenedores Y Columnas En Tailwind Css
Layout
Flexbox En Tailwind Css
Layout
Grid En Tailwind Css
Layout
Evaluación Test Tailwind Css
Evaluación
Evaluación Código Tailwind Css
Evaluación
Certificados de superación de CSS
Supera todos los ejercicios de programación del curso de CSS y obtén certificados de superación para mejorar tu currículum y tu empleabilidad.
En esta lección
Objetivos de aprendizaje de esta lección
- Comprender y aplicar la propiedad
background-color
. - Establecer imágenes de fondo usando
background-image
. - Controlar la repetición de imágenes con
background-repeat
. - Definir la posición exacta de fondos usando
background-position
. - Ajustar el tamaño de un fondo con
background-size
. - Fijar o desplazar fondos con
background-attachment
. - Limitar áreas de pintado con
background-clip
ybackground-origin
. - Crear gradientes lineales, radiales y cónicos.
- Mejorar la estética y funcionalidad manteniendo la accesibilidad.