首页 > 开发 > CSS > 正文

CSS设置多浏览器兼容的背景透明

2024-07-11 09:05:29
字体:
来源:转载
供稿:网友

如何用CSS实现背景半透明效果?我们一般的做法是用两个层,一个用于放文字,另一个用于做透明背景,因为透明滤镜的效果会影响到里面的内容。如果你不在意内容也同时透明的话,则可以直接使用一个层。下面是使背景透明的基本用法:


全透明代码:{background:transparent}
半透明代码:{filter:alpha(opacity=80);-moz-opacity:0.8;width:auto !important;width:100%}

其中filter滤镜是IE独有的用法。

先看个例子:
关于CSS3中如何用CSS实现背景半透明效果可以参考<CSS3新特性之背景属性>,我们今天主要讨论利用css2.0的语法来实现背景透明。

利用2个层来实现的背景透明但内容不透明的CSS写法详细如下:如果你只需求在IE下实现,比较简单的做法:
HTML代码:

<div class="alpha1">  
<div class="ap2">
<p>背景为红色(#FF0000),透明度30%。</p>
</div>   </div>

CSS代码:          
.alpha1{                
width:300px;               
height:200px;                
background-color:#FF0000;                
filter: Alpha(Opacity=30);             
}             
.ap2{                 
position:relative;             
}        

这样基本就可以实现啦,也不用担心定位和自适应问题,最大的问题是仅IE支持。

如果兼容FF、Opera怎么写呢?首先,上面这种简单写法肯定不可以,只适用于IE,因此就只能用两个层重叠的方法。

改下页面结构与CSS样式:

HTML代码:

<div class="alpha1">  
<div class="ap2">     
<p>背景为红色(#FF0000),透明度20%。</p> 
</div>  
<!--[if IE]><![if !IE]><![endif]-->
<div class="alpha2"></div> <!--[if IE]><![endif]><![endif]--> </div>

CSS代码:
.alpha1,.alpha2{                
width:100%;                
height:auto;                 
min-height:250px;/* 必需 */                 
_height:250px;/* 必需 */                 
overflow:hidden;                 
background-color:#FF0000;/* 背景色 */             
}             
.alpha1{         
filter:alpha(opacity=30); /* IE 透明度30% */            
}               .alpha2{                 
background-color:#FFFFFF;                 
-moz-opacity:0.7; /* Moz + FF 透明度30%*/                 
opacity: 0.7; /* 支持CSS3的浏览器(FF 1.5也支持)透明度30%*/            
}             
.ap2{                 
position:absolute;             
}

这样就基本实现了背景透明而内容不透明的效果。大家自己可以试一试!
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表