I’d use rgba for modern browsers (ie9+) and an opacity fix for ie8 and under.
e.g.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style type="text/css">
body { background:red }
.wrap {
background-color:#fff;/* fallback */
background-color: rgba(255, 255, 255, 0.50);
width:300px;
padding:20px;
margin:auto;
}
</style>
<!-- fix for ie8 and under -->
<!--[if lte IE 8]>
<style type="text/css">
.wrap{
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(opacity=50)";
filter:progid:DXImageTransform.Microsoft.Alpha(opacity=50);
}
.inner{position:relative}/* stops opacity from reaching text in IE*/
</style>
<![endif]-->
</head>
<body>
<div class="wrap">
<div class="inner">
<p>Lorem Ipsum dolor sit amet. Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.</p>
</div>
</div>
</body>
</html>
It’s working in IE8 ok but I can see that IE7 has failed and so did my original.
I’ve moved the fallback rule into the IE only styles and added a haslayout trigger for the inner and my code is working in IE7 and 8 now ok (even works in IE6).
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style type="text/css">
body { background:red }
.wrap {
background-color: rgba(255, 255, 255, 0.50);
width:300px;
padding:20px;
margin:auto;
}
</style>
<!-- fix for ie8 and under -->
<!--[if lte IE 8]>
<style type="text/css">
.wrap{
filter:Alpha(Opacity=50);
background-color:#fff;/* fallback */
}
.inner{position:relative;zoom:1.0}/* stops opacity from reaching text in IE*/
</style>
<![endif]-->
</head>
<body>
<div class="wrap">
<div class="inner">
<p>Lorem Ipsum dolor sit amet. Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.Lorem Ipsum dolor sit amet.</p>
</div>
</div>
</body>
</html>
<!-- fix for ie8 trans and under -->
<!--[if lte IE 8]>
<style type="text/css">
#colLeft{
filter:Alpha(Opacity=50);
background-color:#fff;/* fallback */
}
.contentinner{position:relative;zoom:1.0}/* stops opacity from reaching text in IE*/
</style>
<![endif]-->
The conditional comments are still broken in your live site:)
You have this:
<!-- fix for trans ie8 and under -->
<!--[if lte IE 8]>
<style type="text/css">
[B].contentinner{ [/B]
#colLeft{
filter:Alpha(Opacity=50);
background-color:#fff;/* fallback */
}
.contentinner{position:relative;zoom:1.0;}/* stops opacity from reaching text in IE*/
</style>
<![endif]-->
It should be this:
<!-- fix for ie8 trans and under -->
<!--[if lte IE 8]>
<style type="text/css">
#colLeft{
filter:Alpha(Opacity=50);
background-color:#fff;/* fallback */
}
.contentinner{position:relative;zoom:1.0}/* stops opacity from reaching text in IE*/
</style>
<![endif]-->
It should be possible to make it work in ie7 and under as my demo is working ok.