`
awenhaowenchao
  • 浏览: 72136 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

CSS控制背景色渐变,跨浏览器

阅读更多
转载:http://hi.baidu.com/easyphp/blog/item/c70fc9d0cbd13d82a1ec9c6d.html
CSS实现背景色的渐变兼容问题解决2010年07月23日 星期五 15:26CV产物
一、有点俗态的开场白
要是两年前,实现“兼容性的渐变效果”这个说法估计不会被提出来的,那个时候,说起渐变背景,想到的多半是IE的渐变滤镜,其他浏览器尚未支持,但 是,在对CSS3支持日趋完善的今天,实现兼容性的渐变背景效果已经完全成为可能,本文就将展示如何实现兼容性的渐变背景效果。在众多的浏览器中,目前不 支持Opera浏览器。
本文实例效果都是同样的效果,就是垂直渐变,起始颜色红色,结束颜色蓝色,结束的蓝色的透明度是0.5。
本文地址: http://www.zhangxinxu.com/wordpress/?p=743
本文作者为:张鑫旭 来源于:张鑫旭-鑫空间-鑫生活 欢迎访问原出处
二、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>
结果如下图:
本文地址: http://www.zhangxinxu.com/wordpress/?p=743
本文作者为:张鑫旭 来源于:张鑫旭-鑫空间-鑫生活 欢迎访问原出处
三、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浏览器下的效果是:
本文地址: http://www.zhangxinxu.com/wordpress/?p=743
本文作者为:张鑫旭 来源于:张鑫旭-鑫空间-鑫生活 欢迎访问原出处
四、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浏览器下的效果是:
本文地址: http://www.zhangxinxu.com/wordpress/?p=743
本文作者为:张鑫旭 来源于:张鑫旭-鑫空间-鑫生活 欢迎访问原出处
五、综合 – 兼容性的渐变背景效果
相关代码如下:
.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)));}<div class="gradient"></div>
效果分别为上面三个分类的截图。
您可以狠狠地点击这里:兼容性的渐变背景效果demo
六、结语
CSS3的潜力非常的大,就渐变这一块可以创建很多精湛的UI效果,而以往这些效果都只能使用图片实现。CSS渐变背景的实现可以有效降低网页的图 片数,也就是降低了HTTP请求,是非常受用的。但是IE浏览器一直蹲在茅厕边啃鸡腿——自以为美味,得使用资源消耗很高的滤镜才能实现渐变效果。所以, 目前而言,渐变背景的的应用与否还是有待于利弊权衡的。

分享到:
评论

相关推荐

    css背景色渐变

    总结,CSS背景色渐变是一个强大的设计工具,通过灵活运用线性渐变、径向渐变、颜色透明度和重复渐变等特性,我们可以创造出各种独特的网页视觉效果。学习并掌握这些技巧,将有助于提升网页设计的专业性和创新性。在...

    css背景样式渐变代码

    在探讨“css背景样式渐变代码”的过程中,我们首先应当明确CSS(层叠样式表)在网页设计中的重要性。CSS是一种用来描述HTML或XML等文档样式的语言,它不仅能够美化网页,还能够实现更加复杂的布局效果。渐变背景作为...

    CSS设置DIV背景色渐变显示兼容IE/火狐/谷歌

    综上所述,为了实现跨浏览器的背景色渐变,我们需要针对每个浏览器的特性编写不同的CSS规则。随着CSS3的普及,许多现代浏览器已经不再需要这些私有前缀,但是为了确保向后兼容,特别是在处理老旧浏览器时,仍然需要...

    纯CSS3漂亮表格(圆角、渐变、多背景色).rar

    本资源“纯CSS3漂亮表格(圆角、渐变、多背景色).rar”提供了一种利用CSS3特性创建美观表格的方法,特别适合现代浏览器环境,如IE9及以上版本、Firefox、Chrome以及Safari。 首先,我们来看“圆角”这一CSS3特性。...

    css打造背景渐变色

    利用css滤镜造一个背景渐变色,支持大多数浏览器

    css 各浏览器下的背景色渐变【代码】

    首先,让我们了解一下不同浏览器对CSS背景色渐变的支持情况。在早期,各大浏览器(如IE、Firefox、Chrome、Safari和Opera)都有自己的私有语法来实现这一功能,导致开发者需要编写不同的代码以兼容各个浏览器。随着...

    HUEcss含49项逼真的CSS渐变背景样式

    【HUEcss含49项逼真的CSS渐变背景样式】是针对网页设计的一个资源库,它提供了49种不同的CSS渐变背景样式,能够帮助开发者轻松创建具有视觉吸引力的网页元素。渐变背景在现代网页设计中扮演着重要角色,它们能够为...

    css教程实现div背景色渐变色代码分享

    ### CSS 实现 Div 背景色渐变色详解 #### 一、引言 在网页设计中,渐变色背景是一种非常常见的视觉效果,它能够为网站增添活力与美感。本文将通过一个简单的示例来详细介绍如何使用 CSS 来实现 div 的背景渐变效果...

    使用CSS3的背景渐变Text Gradient 创建文字颜色渐变

    在本文中,将介绍如何使用CSS3的背景渐变属性-webkit-gradient,来实现文字颜色的渐变效果,而不需要依赖图片,进而减少页面的加载时间和服务器的请求量。 ### CSS3 背景渐变的基本原理 在CSS3中,背景渐变主要是...

    纯CSS3实现的日落时渐变色背景动画效果源码.zip

    此资源“纯CSS3实现的日落时渐变色背景动画效果源码.zip”提供了利用CSS3特性创建日落时分背景颜色渐变动画的方法。这个效果可以为网站增添动态美感,提升用户体验,特别适用于设计主题或动态背景。 在CSS3中,我们...

    纯css3背景渐变按钮特效.zip

    在前端开发中,CSS3(层叠样式表第三版)为网页设计带来了许多新的特性和增强,其中之一就是背景渐变效果。"纯css3背景渐变按钮特效"这个压缩包文件,显然包含了实现这种效果的相关代码和示例,主要用于创建具有视觉...

    兼容各浏览器css渐变

    ### 兼容各浏览器CSS渐变效果详解 在前端开发中,为了使网站或应用具有更好的视觉效果,渐变色的应用十分广泛。然而,不同浏览器对于CSS渐变的支持程度不一,这使得开发者需要采取一些策略来确保渐变效果能够在各种...

    动画CSS渐变背景生成器_JavaScript_CSS_下载.zip

    CSS渐变和动画在现代浏览器中广泛支持,但对于较旧的浏览器可能需要提供备选方案,例如使用单一背景色或渐变图片。 总的来说,动画CSS渐变背景生成器结合了JavaScript和CSS的强大功能,为网页设计师提供了一个创造...

    4种CSS3颜色渐变的导航菜单效果.rar

    1. **CSS3 渐变(Gradients)**:CSS3引入了线性渐变(Linear Gradients)和径向渐变(Radial Gradients),使得我们可以为元素背景创建平滑的颜色过渡。线性渐变沿着一个方向从一种颜色平滑过渡到另一种颜色,而...

    CSS背景色渐变写法兼容ie6至ie9

    在网页设计中,CSS背景色渐变是一种常用的技术,用于为元素添加丰富的视觉效果,例如表单提交按钮或数据展示标题。随着CSS3的引入,线性渐变变得更为便捷,但考虑到浏览器兼容性,尤其是对旧版Internet Explorer的...

    css3编写浏览器背景渐变背景色的方法

    本文介绍了css3编写浏览器背景渐变背景色的方法,分享给大家,具体如下: 效果如下: 知识点:rgb全色循环算法,HEX与RGB颜色转换算法、CSS3颜色渐变,CSS3渐变色兼容ie方法,定时器与循环,函数封装,数组应用等。 ...

    通过CSS实现的html背景色渐变

    以下我们将详细探讨如何使用CSS实现背景色渐变。 首先,我们来看实现代码的关键部分。在`&lt;style&gt;`标签中定义了一个类 `.linear`,这个类将应用于一个`&lt;div&gt;`元素,以创建背景色渐变的效果。 1. **滤镜(FILTER)...

    CSS3,线性渐变(linear-gradient)的使用总结

    渐变效果广泛应用于按钮、背景及其他视觉元素中,以往这些效果需要通过图片来实现,但现在通过CSS3中的渐变属性,我们可以直接用代码来定义。 在CSS3中,渐变分为线性渐变(linear-gradient)和径向渐变(radial-...

    div背景颜色怎样渐变 css实现div层背景颜色渐变代码

    总结来说,通过CSS,我们可以很容易地实现div背景颜色的渐变效果,只需要根据目标浏览器的兼容性需求编写相应的CSS代码。在实际开发中,可以使用自动化工具(如Autoprefixer)来处理浏览器前缀,以便简化工作流程并...

Global site tag (gtag.js) - Google Analytics