This page is Ready to Use

Notice: The WebPlatform project, supported by various stewards between 2012 and 2015, has been discontinued. This site is now available on github.



Sets a color to fill up the background of an element it is applied to and accepts any valid CSS color.

Overview table

Initial value
Applies to
All elements
Computed value
the computed color
CSS Object Model Property


  • background-color: color
  • background-color: inherit
  • background-color: transparent


The default value; you will be able to see the elements behind the element in question showing through it.
background-color accepts a single color as its value, which can be a keyword, hex, RGB, RGBa, HSL or HSLa color value. See the CSS color values page for more details.
The element’s background-color is inherited from its parent element.


The HTML for this example is a series of simple div elements. Each one has the color information applied to it written inside it for ease of reference.


<div id="c1">
  <p><code>background-color: red;</code></p>

<div id="c2">
  <p><code>background-color: green;</code></p>

<div id="c3">
  <p><code>background-color: blue;</code></p>

<h2>Hex values</h2>

<div id="c4">
  <p><code>background-color: #ff0000;</code></p>

<div id="c5">
  <p><code>background-color: #008000;</code></p>

<div id="c6">
  <p><code>background-color: #0000ff;</code></p>


The CSS then floats the divs next to one another and gives them the same basic look. After that, each block is given a different color value, to demonstrate how keywords, hex, RGB(a), HSL(a) and opacity affect them.

html {
  background: url(bg.png);
  font-family: sans-serif;
  font-size: 10px;

body {
  width: 1024px;
  margin: 0 auto;

p {
  color: white;
  text-shadow: 0 1px 1px black;
  padding: 10px;
  font-size: 1.4rem;

div {
  height: 75px;
  float: left;
  width: 32%;
  margin-right: 1%;
  box-shadow: 0px 0px 10px black;

h2 {
  clear: both;
  padding-top: 1.5rem;

#c1 {
  background-color: red;

#c2 {
  background-color: green;

#c3 {
  background-color: blue;

#c4 {
  background-color: #ff0000;

#c5 {
  background-color: #008000;

#c6 {
  background-color: #0000ff;


View live example


 * A strongly contrasting combination of foreground and background color should be used to make sure your textual content is as readable as possible. To check whether your color contrast passes accessibility conformance criteria, you can use an online checker such as Lea Verou’s Contrast Ratio which accepts any valid CSS color.
  • When using a newer color value type such as RGBa, HSL or HSLa, be aware that older browsers such as IE6-8 don’t support these, so you should provide a fallback colour value so that foreground text will still be readable, either in the same stylesheet, or hidden away behind a conditional comment. So for example:
background-color: #ff0000;
background-color: rgba(255,0,0,0.6);


Internet Explorer 8 & 9 suffer from a bug where elements with a computed background-color of transparent that are overlaid on top of other element(s) won’t receive click events. Any click events will be fired at the underlying element(s) instead. See this live example for a demonstration.

Known workarounds for this bug:

  • For IE9 only:
    • Set background-color: rgba(0,0,0,0)
    • Set opacity: 0 and an explicit background-color other than transparent
  • For IE8 and IE9
    • Set filter: alpha(opacity=0); and an explicit background-color other than transparent

Related specifications

CSS Backgrounds & Borders Level 3
W3C Candidate Recommendation
CSS 2.1 Colors and backgrounds
W3C Recommendation

See also

Related articles


External resources