过滤器:progid:DXImageTransform.Microsoft.gradient 在 ie7 中不起作用

Posted

技术标签:

【中文标题】过滤器:progid:DXImageTransform.Microsoft.gradient 在 ie7 中不起作用【英文标题】:filter: progid:DXImageTransform.Microsoft.gradient is not working in ie7 【发布时间】:2011-10-31 04:12:03 【问题描述】:

我想为我的div 应用渐变背景色。

对于 IE,我使用了该属性:

filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fad59f', endColorstr='#fa9907')

它适用于 IE9 和 IE8。但不能在 IE7 中工作。

我应该怎么做才能在 IE 中看到?

这是一个 JSFiddle:http://jsfiddle.net/xRcXL/2/

【问题讨论】:

【参考方案1】:

在 cmets 中看到你的小提琴,这个问题很容易解决。您只需添加overflow:auto 或为您的div 设置特定高度。实例:http://jsfiddle.net/tw16/xRcXL/3/

.Tab
    overflow:auto; /* add this */
    border:solid 1px #faa62a;
    border-bottom:none;
    padding:7px 10px;
    background:-moz-linear-gradient(center top , #FAD59F, #FA9907) repeat scroll 0 0 transparent;
    background:-webkit-gradient(linear, left top, left bottom, from(#fad59f), to(#fa9907));
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#fad59f, endColorstr=#fa9907);    
    -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#fad59f, endColorstr=#fa9907)";

【讨论】:

zoom:1 会做同样的事情,但对元素有“无”效果。 (经过几个小时的咒骂,这刚刚为我解决了同样的问题。) 为了解释为什么这有效 - 将overflow:auto,强制hasLayout property 放在元素上 我需要使用-ms-filter 而不是filter 并将progid:DXImageTransform... 用引号括起来作为字符串。【参考方案2】:

您没有指定GradientType

background: #f0f0f0; /* Old browsers */
background: -moz-linear-gradient(top, #ffffff 0%, #eeeeee 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ffffff), color-stop(100%,#eeeeee)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, #ffffff 0%,#eeeeee 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, #ffffff 0%,#eeeeee 100%); /* Opera11.10+ */
background: -ms-linear-gradient(top, #ffffff 0%,#eeeeee 100%); /* IE10+ */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#eeeeee',GradientType=0 ); /* IE6-9 */
background: linear-gradient(top, #ffffff 0%,#eeeeee 100%); /* W3C */

来源:http://www.colorzilla.com/gradient-editor/

【讨论】:

【参考方案3】:

这应该可行:

background: -moz-linear-gradient(center top , #fad59f, #fa9907) repeat scroll 0 0 transparent;
 /* For WebKit (Safari, Google Chrome etc) */
background: -webkit-gradient(linear, left top, left bottom, from(#fad59f), to(#fa9907));
/* For Mozilla/Gecko (Firefox etc) */
background: -moz-linear-gradient(top, #fad59f, #fa9907);
/* For Internet Explorer 5.5 - 7 */
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#fad59f, endColorstr=#fa9907);
/* For Internet Explorer 8 */
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#fad59f, endColorstr=#fa9907)";

否则使用以下链接生成并获取代码。

http://www.colorzilla.com/gradient-editor/

【讨论】:

以上是关于过滤器:progid:DXImageTransform.Microsoft.gradient 在 ie7 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

php 类别过滤器分类多过滤器多过滤器多过滤器

过滤器的作用 过滤器介绍

Filter(过滤器)

在Hbase使用过滤器(行键过滤器列族与列过滤器值过滤器)

过滤器是干啥用的 为啥要安装过滤器

前置过滤器有用吗?前置过滤器的作用是啥?