兼容rgba

background:rgba(); 是css3新增的。它非常实用,可以很简单的就做出一个背景透明而内容不透明的遮罩层。

可惜的是IE8及IE8以下并不兼容该属性。但我们可以通过IE下的滤镜来实现rgba的效果。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style>
body {  margin:0; background:pink; }
#box { width:300px; height:300px;  margin:100px auto; background:rgb(0, 0, 0); background: rgba(0,0,0,0.7); }
p { margin:0; padding:0; font-size:40px; line-height:300px; text-align:center; }
</style>
<!--[if lt IE 9]>
   <style type="text/css">
   #box {
       background:transparent;
       filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#b2000000,endColorstr=#b2000000);
       zoom: 1;
    }
    </style>
<![endif]-->
</head>

<body>
<div id="box">
	<p>hello world</p>
</div>
</body>
</html>

以上代码即可实现在IE8下兼容background:rgba();

这里只说一下 IE实现的方面

一、<!--[if lt IE 9]>

<![endif]-->
因为IE9浏览器即支持rgba(),也支持filter.会使效果更加透明(IE9以上不会)。所以我们需要兼容代码只需要在IE9以下的浏览器运行。

二、filterw
我们只需要注意  startColorstr=#b2000000,endColorstr=#b2000000。
其中b2是filter的值,相当于0.7的透明度,而后面的000000是black颜色的十六进制代码。
------------------
以下是透明度对应的filter值
(0.1) = (19)        (0.2) = (33)           (0.3) = (4c)

(0.4) = (66)        (0.5) = (7f)           (0.6) = (99)

(0.7) = (b2)        (0.8) = (c8)           (0.9) = (e5)

例子:灰颜色的十六进制代码是#cccccc.透明度为0.5。就写成#7fcccccc;


 

时间: 2024-10-10 23:59:14

兼容rgba的相关文章

解决IE8下不兼容rgba()的解决办法

rgba()是css3的新属性,所以IE8及以下浏览器不兼容,这怎么办呢?终于我找到了解决办法. 解决办法 我们先来解释以下rgba rgba: rgba的含义,r代表red,g代表green,b代表blue,a代表透明度. rgba(0,0,0,.5) 这样就代表了黑色,透明度为0.5 要想解决在IE8下的透明度问题,可以增加这样一句话: filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#7f000000,endC

IE8下兼容rgba颜色的半透明背景

在工作中做一个图片半透明遮罩时发现在IE8下不兼容 一查再知道IE8不支持rgba颜色,再搜搜兼容性方法,没想到这么快就解决了. 先说说rgba的含义: r代表red,g代表green,b代表blue,a代表透明度.红绿蓝是三原色,所有颜色都可以由这三种颜色拼合而成.比如rgba(0,0,0,.5)就是透明度为0.5的黑色.现代浏览器是支持rgba的,但是在IE8等古董级浏览器中是不支持rgba的,IE8只能勉强支持rgb()函数(即去掉了透明度,只能表示颜色). 网上的解决方法是: backg

ie6,7,8不兼容rgba,写background时候不要写成rgba

一般给一个元素设置背景: .lcProIcon { background: url("images/lcProIcon.png") no-repeat; display: inline-block; height: 56px; left: 0; position: absolute; top: -3px; width: 88px;} 默认的火狐下会解析为rgba,ie会解析为transparent. 如果手动把他写为background: url("images/lcProI

IE8下实现兼容rgba

昨天遇到一个问题,要实现一个背景透明的效果,用CSS3用rgba()就能实现,即 background: rgba(0,0,0,.5); 但是要兼容到IE8,就发现没有透明效果,因为IE8不支持rgba()函数.下面我们总结一下rgba()函数的含义. rgba的含义,r代表red,g代表green,b代表blue,a代表透明度.红绿蓝是三原色,所有颜色都可以由这三种颜色拼合而成.比如rgba(0,0,0,.5)就是透明度为0.5的黑色.现代浏览器是支持rgba的,但是在IE8等古董级浏览器中是

ie6+7+8等对background-color:rgba(),background-img渐变的兼容

一,ie8兼容rgba()的解决办法 今天遇到了一个问题,要在一个页面中设置一个半透明的白色div.这个貌似不是难题,只需要给这个div设置如下的属性即可: background: rgba(255,255,255,.1); 但是要兼容到ie8.这个就有点蛋疼了.因为ie8不支持rgba()函数.下面我们总结一下rgba()函数的含义. rgba的含义,r代表red,g代表green,b代表blue,红绿蓝是三原色.所有颜色都可以由这三种颜色拼合而成.a代表透明度.比如rgba(255,255,

解决ie不兼容某些css新特性

今天撸码遇到了ie无法兼容rgba()透明背景的问题,最后探索出了解决方法! 因为ie不支持rgba背景,导致出现了全透明背景(非常难看) 因此,既想兼容chrome,又想兼容ie,得出的方法是:为类添加两个样式,如下 .main{ background-color: #000; background-color: rgba(0,0,0,0.6); } 这样,因为原先设置了背景,后面又设置了同样的属性 所以,如果支持该属性的浏览器自然会显示,不支持的浏览器则会使用第一条代码作为样式 实验得出:c

CSS3属性的兼容 什么是弹性和布局

CSS3新特性,兼容性,兼容方法总结 css3手册css3手册 边框 border-radius 用于添加圆角效果 语法: border-radius:[ <length> | <percentage> ]{1,4} [ / [ <length> | <percentage> ]{1,4} ]?<length>:用长度值设置对象的圆角半径长度.不允许负值<percentage>:用百分比设置对象的圆角半径长度.不允许负值 实例: bo

8.6随笔

每日分享 一.CSS3新特性,兼容性,兼容方法总结 边框 border-radius 用于添加圆角效果 语法: border-radius:[ <length> | <percentage> ]{1,4} [ / [ <length> | <percentage> ]{1,4} ]? <length>:用长度值设置对象的圆角半径长度.不允许负值 <percentage>:用百分比设置对象的圆角半径长度.不允许负值 实例: border

css颜色值设置方式有哪些?以及如何随机一个颜色?

网页中颜色的使用方式有一下几种 1.颜色名称 ,如red  black white 2.十六进制颜色,网页中常用,每两位代表红绿蓝的值的比例,  如 #ffffff白色   #000000黑色 3.rgba颜色,   如 rgba(255,255,255,0.5)  半透明白色  ,此方式ie8及以下不兼容 RGBA(R,G,B,A) R:红色值.正整数 | 百分数 G:绿色值.正整数 | 百分数 B:蓝色值.正整数 | 百分数 A:Alpha透明度.取值0~1之间. 4.hsla颜色值,  如