过滤器: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 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章