CSS实现兼容性的渐变背景(gradient)效果

16 篇文章 0 订阅

CSS实现兼容性的渐变背景(gradient)效果

 

IE浏览器下的渐变背景

IE浏览器下渐变背景的使用需要使用IE的渐变滤镜。如下代码:

 

filter: progid:DXImageTransform.Microsoft.gradient(startcolorstr=red,endcolorstr=blue,gradientType=1);

 

相关说明:
上面的滤镜代码主要有三个参数,依次是:startcolorstr, endcolorstr, 以及gradientType。
其中gradientType=1代表横向渐变,gradientType=0代表纵向淅变。startcolorstr=”色彩” 代表渐变渐变起始的色彩,endcolorstr=”色彩” 代表渐变结尾的色彩。

 

上面代码实现的是红色至蓝色的渐变,但是不含透明度变化,这是由于IE目前尚未支持opacity属性以及RGBA颜色,要实现IE下的透明度变 化,还是需要使用IE滤镜,IE的透明度滤镜功能比较强大,这种强大反而与Firefox或是Safari浏览器下的css-gradient背景渐变的 用法类似。例如下面的使用:

 

filter:alpha(opacity=100 finishopacity=0 style=1 startx=0,starty=5,finishx=90,finishy=60)

 

其中各个参数的含义如下:
opacity表示透明度,默认的范围是从0 到 100,他们其实是百分比的形式。也就是说,0代表完全透明,100代表完全不透明。
finishopacity 是一个可选参数,如果想要设置渐变的透明效果,就可以使用他们来指定结束时的透明度。范围也是0 到 100。
style用来指定透明区域的形状特征:
0 代表统一形状
1 代表线形
2 代表放射状
3 代表矩形。
startx 渐变透明效果开始处的 X坐标。
starty 渐变透明效果开始处的 Y坐标。
finishx 渐变透明效果结束处的 X坐标。
finishy 渐变透明效果结束处的 Y坐标。

 

综合上述,实现IE下含透明度变化红蓝垂直渐变的代码如下:

 

.gradient{
    width:300px;
    height:150px;
    filter:alpha(opacity=100 finishopacity=50 style=1 startx=0,starty=0,finishx=0,finishy=150) progid:DXImageTransform.Microsoft.gradient(startcolorstr=red,endcolorstr=blue,gradientType=1);
    -ms-filter:alpha(opacity=100 finishopacity=50 style=1 startx=0,starty=0,finishx=0,finishy=150) progid:DXImageTransform.Microsoft.gradient(startcolorstr=red,endcolorstr=blue,gradientType=1);
}

<div class="gradient"></div>

 

结果如下图:

 

IE6下含半透明的渐变背景效果 张鑫旭-鑫空间-鑫生活

 

三、Firefox浏览器下的渐变背景

 

对于Firefox浏览器下(Firefox 3.6+)渐变背景的实现需使用CSS3渐变属性,-moz-linear-gradient属性,在之前文章我详细介绍了Firefox3.6下渐变背景的实现,您有兴趣可以狠狠地点击这里:CSS渐变之CSS3 gradient在Firefox3.6下的使用 。这里我就不再具体讲述了,对于本文开头提到的要实现的效果的实现可以参见下面的代码:

 

.gradient{
    width:300px;
    height:150px;
    background:-moz-linear-gradient(top, red, rgba(0, 0, 255, 0.5));  
}

<div class="gradient"></div>

 

此段代码在Firefox3.6浏览器下的效果是:

 

Firefox3.6下含半透明的渐变背景效果 张鑫旭-鑫空间-鑫生活

 

四、chrome/Safari浏览器下的渐变背景实现

 

对于webkit核心的浏览器,如Chrome/Safari浏览器下渐变背景的实现也是使用CSS3 渐变方法,css-gradient,具体为-webkit-gradient,使用语Firefox浏览器是有一些差异的。我在上上一篇文章对此进行了 非常详细的介绍,您可以狠狠地点击这里:CSS gradient渐变之webkit核心浏览器下的使用 。具体使用就不详述了,参见下面的代码:

 

.gradient{
    width:300px;
    height:150px;
    background:-webkit-gradient(linear, 0 0, 0 bottom, from(#ff0000), to(rgba(0, 0, 255, 0.5)));  
}

<div class="gradient"></div>

 

此段代码在Safari 4浏览器下的效果是:

 

Safari下含半透明的渐变背景效果 张鑫旭-鑫空间-鑫生活

 

补充于2011-04-07
Opera11也支持了CSS3渐变。其用法与Firefox一致,需要使用-o-的前缀。另外,Chrome的渐变用法也开始向FireFox浏览器下的用法靠拢。

 

五、综合 – 兼容性的渐变背景效果

 

相关代码如下:

 

.gradient{
    width:300px;
    height:150px;
    filter:alpha(opacity=100 finishopacity=50 style=1 startx=0,starty=0,finishx=0,finishy=150) progid:DXImageTransform.Microsoft.gradient(startcolorstr=red,endcolorstr=blue,gradientType=0);
    -ms-filter:alpha(opacity=100 finishopacity=50 style=1 startx=0,starty=0,finishx=0,finishy=150) progid:DXImageTransform.Microsoft.gradient(startcolorstr=red,endcolorstr=blue,gradientType=0);/*IE8*/	
    background:red; /* 一些不支持背景渐变的浏览器 */  
    background:-moz-linear-gradient(top, red, rgba(0, 0, 255, 0.5));  
    background:-webkit-gradient(linear, 0 0, 0 bottom, from(#ff0000), to(rgba(0, 0, 255, 0.5)));  
    background:-o-linear-gradient(top, red, rgba(0, 0, 255, 0.5)); 
}

<div class="gradient"></div>

 

效果分别为上面三个分类的截图。
您可以狠狠地点击这里:兼容性的渐变背景效果demo

 

六、结语

 

CSS3的潜力非常的大,就渐变这一块可以创建很多精湛的UI效果,而以往这些效果都只能使用图片实现。CSS渐变背景的实现可以有效降低网页的图 片数,也就是降低了HTTP请求,是非常受用的。但是IE浏览器一直蹲在茅厕边啃鸡腿——自以为美味,得使用资源消耗很高的滤镜才能实现渐变效果。所以, 目前而言,渐变背景的的应用与否还是有待于利弊权衡的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现 CSS 渐变半透背景的毛玻璃效果,可以结合使用 background-image、opacity 和 backdrop-filter 属性。具体实现步骤如下: 1. 使用 background-image 属性设置渐变背景,可以使用 linear-gradient 或 radial-gradient 函数实现。 2. 使用 opacity 属性设置元素的不透明度,使元素呈现半透明效果。 3. 使用 backdrop-filter 属性对元素的背景进行模糊处理,实现毛玻璃效果。 下面是一个简单的代码示例,实现 CSS 渐变半透背景的毛玻璃效果: ```css .background { background-image: linear-gradient(to bottom right, rgba(255, 255, 255, 0.8), rgba(0, 0, 0, 0.8)); opacity: 0.8; backdrop-filter: blur(10px); /* 注意需要添加以下两个属性才能实现兼容性 */ -webkit-backdrop-filter: blur(10px); -moz-backdrop-filter: blur(10px); } ``` 在上述代码中,使用了 linear-gradient 函数设置了从右下角到左上角的渐变背景,颜色分别为白色和黑色,透明度为 0.8。同时,使用了 opacity 属性设置了元素的不透明度为 0.8,使元素呈现半透明效果。最后,使用了 backdrop-filter 属性对元素的背景进行了模糊处理,模糊半径为 10px。为了兼容性,在属性值前面添加了浏览器前缀。 需要注意的是,渐变背景的具体设置需要根据具体的需求进行调整。同时,opacity 属性和 backdrop-filter 属性的支持情况可能会随着浏览器版本的更新而发生变化,需要进行版本兼容性的处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值