我想知道我是否可以忽略ie6上的css投影,而不使用条件语句来过滤css。
这是我目前的css:
/* Drop shadow */
-ms-filter: "progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=135, Color='#000000')";
filter: progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=135, Color='#000000');
box-shadow: 0px 10px 15px rgba(0, 0, 0, 0.7);
-moz-box-shadow: 0px 10px 15px rgba(0, 0, 0, 0.7);
-o-box-shadow: 0px 10px 15px rgba(0, 0, 0, 0.7);
-webkit-box-shadow: 0px 10px 15px rgba(0, 0, 0, 0.7);
也许-ms-filter-ie6: none
或其他:P沿着这些行
答案 0 :(得分:3)
在您的-ms-filter:
行添加以下 行
* html -ms-filter: "progid:DXImageTransform.Microsoft.Shadow(enabled=false)";
* html
仅由IE6读取。但这是一个CSS黑客,这是非常糟糕的做法。你应该使用条件。
答案 1 :(得分:2)
使用IE-Only CSS Conditional Comment禁用IE6 / Win的专用过滤器:
<!--[if IE 6]>
<style type="text/css">
.drop-shadow {
filter: progid:DXImageTransform.Microsoft.Shadow(enabled='0');
}
</style>
<![endif]-->
“enabled”过滤器属性是一个布尔值,需要使用true或false值来启用或禁用过滤器:
0 = false(禁用过滤器)
1 = true(默认值。启用过滤器)
答案 2 :(得分:1)
IE6只知道filter
,它不会识别-ms-filter
样式,因此删除filter
就可以了。缺点是这也会为IE7杀死它。
答案 3 :(得分:1)
您可以使用te /**/
hack。
filter/**/: progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=135, Color='#000000');
ie6应该忽略它,但我没有ie6来测试它。
正如贾斯汀萨特所说,这是一个黑客,你应该使用条件评论。
答案 4 :(得分:1)
我一直把条件放在<html>
标签上:
<!DOCTYPE HTML>
<!--[if lt IE 7 ]> <html class="ie ie6"><![endif]-->
<!--[if gte IE 7 ]> <html class="ie"><![endif]-->
<!--[if ! IE ]><!--><html class="notie"><!--<![endif]-->
<head>
...
然后在样式表中可以做(你现在只需要一个样式表,而html中没有内联样式)
.ie6 .drop-shadow
{
filter:none; /* or whatever */
}
如果您需要其他IE的不同代码,您可以添加更多条件。我有一个项目,其中IE6,IE7,IE8和IE9对于至少一个项目都表现不同(但FF,Chrome和Safari都很接近),因此有五个不同的<html>
标签。
如果您使用DreamWeaver,我听说您在</html>
周围也需要相同的评论。
如果您需要为其他浏览器使用不同的代码,则必须使用jQuery或类似代码来添加类:如$('html').addClass('ff4');
,但如果未启用js,则可能会出现意外情况。