rgba for background color of IE7&IE8

web前端1305012年前 (2012-06-11)

RGB色彩模式(也翻译为“红绿蓝”,比较少用)是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一。

RGBA在RGB的基础上多了控制alpha透明度的参数。以上R、G、B三个参数,正整数值的取值范围为:0 – 255。百分数值的取值范围为:0.0% – 100.0%。超出范围的数值将被截至其最接近的取值极限。并非所有浏览器都支持使用百分数值。A参数,取值在0~1之间,不可为负值

RGBA语法:

  1. div {

  2. background: rgba(0,0,0,0.5);

  3. }

浏览器兼容性:

RGBA和opacity的区别
opacity (filter: Alpha(Opacity=50) 或opacity:0.5)会使整个元素包括子元素透明,而RGBA仅仅是元素本身透明,子元素不透明。

下面具体讲讲怎样让IE浏览器支持RGBA颜色
一、CSSPIE
CSSPIE可以让color、background、 box-shadow支持RGBA
示例:

  1. div{

  2. color:rgba(0,0,0,.5);

  3. background:rgba(0,0,0,.5);

  4. -pie-background:rgba(0,0,0,.5);/*IE6-8*/

  5. box-shadow:1px1px rgba(0,0,0,.5);/*仅在未设置模糊值的情况下支持rgba*/

  6. }

二、filter
通过IE滤镜让背景色透明,模拟rgba效果,不会影响子元素的背景透明度.
示例:

  1. .filter{

  2. filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#BF000000,endColorstr=#BF000000);

  3. }

我们需要留意的是StartColorStr和EndColorStr的值,前两位是十六进制的透明度,后面六位是十六进制的颜色。
换算方法:x=alpha*255 将计算的结果x转换成十六进制即可.

1、在你的网页加载 PIE.js。
注意,用IE专用的注释,防止非IE浏览器下载。
<!--[if lt IE 10]>
<script type="text/javascript" src="PIE.js"></script>
<![endif]-->
 
2、用js 调用:
$(function() {
    if (window.PIE) {
        $('.rounded').each(function() {
            PIE.attach(this);
        });
    }
});