Welcome to The Coding College! Using multiple backgrounds in CSS is a powerful feature that allows you to layer multiple background images or colors in a single element. This capability adds depth and creativity to your web designs.
In this tutorial, we’ll explain how to use multiple backgrounds in CSS, explore its syntax, and provide practical examples to implement this feature effectively.
What Are Multiple Backgrounds?
CSS allows you to apply more than one background to an element by separating values for background-image
, background-size
, background-position
, and other background-related properties using commas. Each background is layered in the order it’s specified, with the first one being on top.
Syntax
To use multiple backgrounds, provide a comma-separated list of values for the background properties.
General Syntax:
selector {
background: background1, background2, ...;
}
Full Property Syntax:
selector {
background-image: url(image1), url(image2);
background-position: position1, position2;
background-size: size1, size2;
background-repeat: repeat1, repeat2;
}
Each property (e.g., background-image
, background-size
) accepts multiple values separated by commas. The first value corresponds to the first background, the second value to the second background, and so on.
Practical Examples
Example 1: Simple Multiple Backgrounds
div {
background-image: url('image1.jpg'), url('image2.png');
background-position: top left, bottom right;
background-repeat: no-repeat, repeat;
}
- The first image (
image1.jpg
) is positioned at the top left and does not repeat. - The second image (
image2.png
) is positioned at the bottom right and repeats.
Example 2: Mixing Images and Colors
You can combine background images and colors for a dynamic effect.
div {
background: url('image1.jpg') no-repeat center, linear-gradient(to right, #ff7e5f, #feb47b);
}
- The first background is an image centered in the element.
- The second background is a linear gradient that spans the entire element.
Example 3: Layering Transparent Backgrounds
Transparent backgrounds allow you to see the layers beneath.
div {
background:
rgba(255, 0, 0, 0.5),
url('pattern.png') repeat;
}
- The top layer is a semi-transparent red overlay.
- The bottom layer is a repeating pattern image.
Example 4: Different Sizes for Each Background
div {
background-image: url('image1.jpg'), url('image2.png');
background-size: cover, 50px 50px;
background-repeat: no-repeat, repeat;
background-position: center, top left;
}
- The first image covers the entire element.
- The second image repeats with a fixed size of
50px x 50px
at the top-left corner.
Example 5: Full Shorthand for Multiple Backgrounds
div {
background:
url('image1.jpg') no-repeat center / cover,
url('image2.png') repeat top left / 50px 50px,
linear-gradient(to bottom, #ffffff, #000000);
}
- First layer: A centered image that covers the entire element.
- Second layer: A repeating small image in the top-left corner.
- Third layer: A linear gradient from white to black.
Stacking Order
The stacking order of backgrounds is determined by their position in the list:
- The first background in the list is rendered on top.
- Subsequent backgrounds are layered underneath.
For example:
background: url('top-image.png'), linear-gradient(to right, #ff7e5f, #feb47b);
Here:
- The image (
top-image.png
) is on top. - The gradient is beneath the image.
Combining Multiple Backgrounds with the background
Shorthand
The background
shorthand property can simplify the declaration of multiple backgrounds. Each layer’s properties (like image
, size
, position
, repeat
) can be combined into a single line.
Syntax:
background:
[background1-properties],
[background2-properties],
[background3-properties];
Example:
div {
background:
url('image1.jpg') no-repeat center / cover,
url('image2.png') repeat top left / 50px 50px;
}
Best Practices
- Layer with Purpose: Use multiple backgrounds to add depth and texture without overwhelming the design.
- Optimize Images: Ensure all background images are compressed for fast loading.
- Fallbacks: Provide fallback colors or patterns for browsers that don’t support complex backgrounds.
background: #ccc; /* Fallback color */
background: url('image.jpg') no-repeat center, linear-gradient(to bottom, #ff7e5f, #feb47b);
- Test Responsiveness: Use relative units (like
%
orvh/vw
) to ensure backgrounds adapt to screen sizes.
Browser Compatibility
Multiple backgrounds are supported in all modern browsers, including Chrome, Firefox, Edge, Safari, and Opera. However, if targeting older versions of Internet Explorer (IE8 or earlier), multiple backgrounds are not supported.
Conclusion
CSS multiple backgrounds allow for highly creative designs, enabling developers to layer images, colors, and gradients. By mastering these techniques, you can create visually stunning websites that stand out from the rest.
Key Takeaways:
- Use commas to separate values for multiple backgrounds.
- Combine images, gradients, and colors for layered effects.
- Experiment with properties like
background-size
andbackground-repeat
for customization.
For more tutorials and tips on CSS and web development, visit The Coding College.
Happy Coding!