找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1484|回复: 0

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

[复制链接]
发表于 2013-2-21 17:23:25 | 显示全部楼层 |阅读模式 来自 中国–北京–北京
IE浏览器下的渐变背景

IE浏览器下渐变背景的使用需要使用IE的渐变滤镜。如下代码:
  • filter: progidXImageTransform.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下含透明度变化红蓝垂直渐变的代码如下:

<!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" xml:lang="zh-cn"><head><meta http-equiv="content-type" content="text/html; charset=gb2312" /><title>test- CSS3</title><style type="text/css" rel="stylesheet">.gradient{    width:300px;    height:150px;    filter:alpha(opacity=100 finishopacity=50 style=1 startx=0,starty=0,finishx=0,finishy=150) progidXImageTransform.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) progidXImageTransform.Microsoft.gradient(startcolorstr=red,endcolorstr=blue,gradientType=1);}</style></head><body><div class="gradient"></div></body></html>
提示:您可以先修改部分代码再运行





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

<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"><html ><head><style type="text/css" rel="stylesheet">.gradient{    width:300px;    height:150px;    background:-moz-linear-gradient(top, red, rgba(0, 0, 255, 0.5));}</style></head><body><div class="gradient"></div></body></html>
提示:您可以先修改部分代码再运行




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

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


<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"><html ><head><style type="text/css" rel="stylesheet">.gradient{    width:300px;    height:150px;    background:-webkit-gradient(linear, 0 0, 0 bottom, from(#ff0000), to(rgba(0, 0, 255, 0.5)));}</style></head><body><div class="gradient"></div></body></html>
提示:您可以先修改部分代码再运行




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


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

相关代码如下:
<html ><head><style type="text/css" rel="stylesheet">.gradient{    width:300px;    height:150px;    filter:alpha(opacity=100 finishopacity=50 style=1 startx=0,starty=0,finishx=0,finishy=150) progidXImageTransform.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) progidXImageTransform.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));}</style></head><body><div class="gradient"></div></body></html>
提示:您可以先修改部分代码再运行




        CSS3的潜力非常的大,就渐变这一块可以创建很多精湛的UI效果,而以往这些效果都只能使用图片实现。CSS渐变背景的实现可以有效降低网页的图片数,也就是降低了HTTP请求,是非常受用的。

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号

关闭

站长推荐上一条 /1 下一条

QQ|侵权投诉|广告报价|手机版|小黑屋|西部数码代理|飘仙建站论坛 ( 豫ICP备2022021143号-1 )

GMT+8, 2024-11-22 15:58 , Processed in 0.039708 second(s), 9 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表