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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

最近在项目中,有很多地方都用到了线性渐变,比如:表单提交按钮的背景,数据展示的标题背景等等,按照以前的做法是切1px 图片然后repeat-x。

下面我将介绍如何用css 来完成该效果。

css3:linear-gradient
比如:黑色渐变到白色,代码如下:
代码如下:
.gradient{
background: -moz-linear-gradient(top, #000000 0%, #ffffff 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#000000), color-stop(100%,#ffffff));
background: -webkit-linear-gradient(top, #000000 0%,#ffffff 100%);
background: -o-linear-gradient(top, #000000 0%,#ffffff 100%);
background: -ms-linear-gradient(top, #000000 0%,#ffffff 100%);
background: linear-gradient(to bottom, #000000 0%,#ffffff 100%);
}
ie 滤镜:filter
linear-gradient 在ie9 以下是不支持的,所以对于ie6 - ie8 我们可以使用滤镜来解决,代码如下:
代码如下:
.gradient{
filter: progid:dximagetransform.microsoft.gradient( startcolorstr='#000000', endcolorstr='#ffffff',gradienttype=0 );
}
由于filter 是ie 的私有属性,所以我们需要针对ie9 单独处理滤镜效果,代码如下:代码如下:
:root {filter:none;}
总结:
综上所述,线性渐变的兼容写法如下:
代码如下:
gradient{
background: #000000;
background: -moz-linear-gradient(top, #000000 0%, #ffffff 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#000000), color-stop(100%,#ffffff));
background: -webkit-linear-gradient(top, #000000 0%,#ffffff 100%);
background: -o-linear-gradient(top, #000000 0%,#ffffff 100%);
background: -ms-linear-gradient(top, #000000 0%,#ffffff 100%);
background: linear-gradient(to bottom, #000000 0%,#ffffff 100%);
filter: progid:dximagetransform.microsoft.gradient( startcolorstr='#000000', endcolorstr='#ffffff',gradienttype=0 );
}
:root .gradient{filter:none;}
ps:
在实际的项目中,往往会碰到圆角和渐变的组合,如果使用上面的写法,那么在ie9 下会有bug(在ie9 下背景色不能完全切完),解决方法是svg。

相关文档
最新文档