How to Use Multiple Background Images with CSS

  • google plus

In Brief...

CSS3 offers the ability to include multiple background images for a given element - use a comma-delimited list to specify as many as you like:

background-image:url(img1.gif), url(img2.png), url(img3.gif)
The order of the listed background images determines the position of the layer relative to the viewer, akin to the CSS z-index property: the first background image is on "top", the next below that, etc.

Take our Advanced CSS Training course for free.

See the Course Outline and Register

Instructions

In similar fasion, specifying a comma-delimited list of background-position and/or background-repeat values assigns the position and repeat, respectively, for the multiple background images, as such:


div {
	background-image:url(img1.gif), url(img2.png), url(img3.gif);
	background-position:center top, right top, center bottom;
	background-repeat:no-repeat, repeat-x, repeat-y;
}

In the example above, background image img1.gif is positioned center top and not repeated, img2.png is positioned right top and repeated horizontally, and img3.gif is positioned center bottom and repeated vertically.

Excess position or repeat values are ignored; that is, for an element for which three background images are specified and for which, say, four background-position values are set, the fourth set of position values would be ignored. If too few position or repeat values (i.e., fewer than the number of background images) are set, then the position or repeat values are repeated.

Specifying background-color when applying multiple background images applies the color as the final (lowest) background layer, behind all of the background images.

The background shorthand property is still available with multiple background images:


div {
	background:url(img1.gif) center top no-repeat, url(img2.png)
	right top repeat-x, url(img3.gif) center bottom repeat-y;
}

Follow these steps to see a demonstration of multiple background images:

  1. Create or download three images to use as backgrounds. These can be anything, but they should be small so that you can see how background-position and background-repeat work.
  2. Make a simple HTML document containing just a single div element.
    	
    <!DOCTYPE HTML>
    <html>
    <head>
        <title>Multiple Background Images</title>
    </head>
    <body>
    <div>
    
    </div>
    </body>
    </html>
    	
    
  3. Put a style element in the head and use the CSS from earlier in this How-To to display the multiple image backgrounds. Make sure to also give the div a width and a height.
    
    <style type="text/css">
    div {
    	width:750px;
    	height:750px;
    	background-image:url(img1.png), url(img2.png), url(img3.png);
    	background-position:center top, right top, center bottom;
    	background-repeat:no-repeat, repeat-x, repeat-y;
    }
    </style>
    
    
  4. Open the HTML page in a browser. The page should look like this:
    multiple backgrounds

Webucator provides instructor-led training to students throughout the US and Canada. We have trained over 90,000 students from over 16,000 organizations on technologies such as Microsoft ASP.NET, Microsoft Office, XML, Windows, Java, Adobe, HTML5, JavaScript, Angular, and much more. Check out our complete course catalog.

Categories

Courses

Author: Chris Minnick

Chris is a prolific author and trainer, and the CEO of WatzThis?. His published books include Writing Computer Code, JavaScript for Kids, Coding with JavaScript For Dummies, Beginning HTML5 and CSS3 For Dummies, Webkit For Dummies, CIW eCommerce Certification Bible, and New Riders' XHTML.

Discuss