2

我有一个复选框和一个样式标签,具体取决于复选框是否被选中。到目前为止,我使用[selectivizr]脚本1来管理在IE7中工作的:selected属性。但不知何故,渐变不能在IE 7,8和9中使用propper。应该有一个渐变从浅到深的绿色,但我会得到深蓝色渐变。我无法解释这种奇怪的行为,也许它与css-rules的顺序有关?IE 7中的线性渐变背景 - 9

 input[type=checkbox]:checked + label { 
     background: #00bf00; 
     background: -webkit-linear-gradient(top, #00bf00 0%, #009400 100%); 
     background: -moz-linear-gradient(top, #00bf00 0%, #009400 100%); 
     background: -o-linear-gradient(top, #00bf00 0%, #009400 100%); 
     background: -ms-linear-gradient(top, #00bf00 0%, #009400 100%); 
     background: linear-gradient(top, #00bf00 0%, #009400 100%); 
     filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#222', endColorstr='#45484d',GradientType=0); /* EDIT: UPDATE BELOW:*/ 
     filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00bf00', endColorstr='#009400',GradientType=0); 
    } 

回答

5

你的十六进制值是错误的IE6-9部分:

filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00bf00', endColorstr='#009400',GradientType=0); /* IE6-9 */ 
+1

感谢这解决了我的错误的部分,另一个连接到它。很明显,这个IE筛选器狗屎不能像#222那样处理十六进制值,我将它改为#222222,现在它像一个魅力 – abimelex 2013-05-02 10:51:21