HTML and CSS Reference
To avoid this problem, first define a fallback style for IE 6-8 using hexadecimal notation, a color keyword, or
an rgb() value. Then follow it with an rgba() or hsla() value like this:
background-color: rgba(255, 255, 255, 0.8);
Browsers ignore values they don't understand. So, an old browser should apply the first value ( #FFF or
solid white), and ignore the second one. But a modern browser that understands rgba() applies the rules of the
cascade, and uses the second value (translucent white) to override the first one.
This works as expected in IE 8 and any other mainstream browser. IE 8 uses the solid color, others use the
translucent one. However, IE 6 and IE 7 don't play ball. They ignore both colors, leaving the text without an
Fortunately, the solution is simple: use background-color for the fallback color and the background
shorthand property for the color with alpha transparency. The styles for the <div> that contains the text in
background_alpha.html look like this:
background: rgba(255, 255, 255, 0.8);
This keeps all browsers happy. As Figure 8-2 shows, IE 6 uses the hexadecimal value and displays a solid
white background behind the text. IE 7 and IE 8 do the same. All other mainstream browsers use the rgba() value
and render a translucent background as in Figure 8-1 .
■ The background-color property works only with solid and translucent colors. it can't be used to apply a
gradient. Css3 treats gradients as images. You'll learn about Css gradients in Chapter 19 .