IE浏览器下渐变背景的使用需要使用IE的渐变滤镜filter
对于Firefox浏览器下(Firefox 3.6+)渐变背景的实现需使用CSS3渐变属性 为-moz-linear-gradient属性
对于webkit核心的浏览器,如Chrome/Safari浏览器下渐变背景的实现也是使用CSS3 渐变方法为-webkit-gradient
代码如下:
.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)/*IE*/
-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)) /*Firefox*/
background:-webkit-gradient(linear, 0 0, 0 bottom, from(#ff0000), to(rgba(0, 0, 255, 0.5))) /*Chrome/Safari*/
}
<div class="gradient"></div>
借助background-position实现渐变过渡
background-image虽然不支持CSS3 transition过渡,但是background-position支持啊,于是,通过控制背景位置,我们是可以实现渐变过渡效果的。
实现效果如下(鼠标hover):
借助background-color实现渐变过渡
background-image虽然不支持CSS3 transition过渡,但是background-color支持啊,于是,通过控制背景颜色,和一个颜色呈现技巧,我们也是可以实现渐变过渡效果的。
鼠标hover前后效果对比:
借助伪元素和opacity实现渐变过渡
借助伪元素创建变换后的渐变效果,通过改变覆盖的渐变的opacity透明度变化实现渐变过渡效果。
下图为hover之后的效果:
相关代码如下:
扩展资料:mozilla 使用 CSS transitions
css3可以实现的:
<!doctype html><html lang="en">
<head>
<meta charset="UTF-8">
<title>gradient-transform</title>
<style>
body{margin: 0}
#demo{
width: 500px
height: 200px
/*渐变*/
background: linear-gradient(left,blue,#fff)
background: -ms-linear-gradient(left,blue,#fff)
background: -webkit-linear-gradient(left,blue,#fff)
background: -o-linear-gradient(left,blue,#fff)
background: -moz-linear-gradient(left,blue,#fff)
/*圆角*/
/* border-top-left-radius: 20px
border-bottom-right-radius: 20px*/
}
.2demo2{
-moz-transform:scaleY(-1)
-webkit-transform:scaleY(-1)
-o-transform:scaleY(-1)
transform:scaleY(-1)
/*IE*/
filter:FlipV
}
</style>
</head>
<body>
<div id="demo"></div>
</body>
</html>
你看下背景从蓝色变成白色。。
如果你要不斜的渐变估计实现起来比较难。
有用就采纳把~~~