How to Add a Background Image with CSS

Background images, just as the name implies, are part of the BACKGROUND of a website, not part of the actual content. The most common place to add a background image to, is the entire canvas – aka the body tag.

The CSS to add an image to a body tag is simple:

body {
background: url(bgimage.jpg);
}

I’m just using a random image for demonstration purposes, and THIS this is what we get. And we can note the following:

  1. It’s a very beautiful flower (grew in my house)
  2. It repeats itself and covers the entire background – that is called ’tiling’ (think bathroom)
  3. It pretty much makes it impossible to read the actual page content

There are also special background images that are designed to tile unnoticeable -for example this one:
Background Image optimized to tile unnoticeable which will create THIS.

CSS also gives us the tools to direct our background image how we want it. The default, as you can see, is that it repeats itself horizontally AND vertically to fill the entire background, regardless of size. Sometimes we might want the image appear only horizontally or vertically – and maybe not directly on the edge of the viewing area.

body {
background: url(bgimage.jpg) repeat-x bottom;
}

creates a background that is repeated vertically at the bottom of the content, and this background image repeated horizontally on the right is created by this CSS:

body {
background: url(bgimage.jpg) repeat-y right;
}

There are many more ways for us to control our background. In addition to the above, we could:

  • Add a background color (background: url(image.jpg) #555555;)
  • Display the image only one time (no-repeat)
  • Position it more specifically (options are: top, bottom, left, right, center, x-15px, or y-20% (measurements and units are optional))
  • Keep it from scrolling (background: url(image.jpg) fixed;)
  • Any combination of any of the above

A wise combination of all these techniques might actually allow us to create a decorative background that does NOT interfere with the actual content. Like This. The following CSS created this page – and please note that I also added some padding to keep the content off the image, which makes things soooo much easier to read:

body {
	background: url(bgimage.jpg) no-repeat #f6f1b9 fixed top right;
	padding-right: 250px;
}

Background images can be added to pretty much any tag. They can be added to divisions, used to create fancy navigation menus, spruce up a list, decorate h tags,…. It’s so exciting!!!!

Tags:

This post was written by: Andrea Barnett

This entry was posted on Thursday, March 4th, 2010 at 11:47 am and is filed under CSS Basics, CSS Misc, CSS Page Layouts, Killer CSS Tips and Tricks. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

6 Responses to “How to Add a Background Image with CSS”

  1. [...] pursuit to make web design easy for you, we have yet another great little tutorial on using CSS to insert background images into your web [...]

  2. Michael Hall says:

    yet another one that had me puzzled for a long time, is there a specific order that the declarations(?) should be listed in?

    i finally remember the order for the font: shorthand to do several things in one line of css code.

    = )

    for some reason css baffles me and i’ve been coding php and javascript for almost 10 years! i think it’s mostly the cross-browser compatibility issues, and the fact that it doesn’t give error messages like javascript and php to help you along, lolol.

  3. Craig Vika says:

    How can l get the colour codes of backgrounds

  4. @ Michael – I assume you mean url(..), no-repeat, top, etc.? The order does not matter.

    @ Craig – I am not sure what you mean. Color codes are the same no matter what you apply the color to. If you’re looking to find what color has what code, just google ‘hex color codes’.

  5. Vihar says:

    How can I position a (square shaped) image inside of a 100% wide header with a chosen amount of distance or margin between the image and the left side of the screen?

  6. Andrea Barnett says:

    Craig – post your question on the Killersites Community: http://www.killersites.com/community/index.php?/index and provide some more detail. Are you talking background image? Depending on the circumstance of your 100% header, that size might vary, so a set width image with set width margins or padding won’t work. But more detail is needed to give a good answer.

Leave a Reply