IE9圆角和过滤器:progid:DXImageTransform.Microsoft.gradient

Jef*_*ffz 12 css internet-explorer-9

我曾经filter: progid:DXImageTransform.Microsoft.gradient为IE <9获得渐变.现在,当与阴影或下面的不同背景相结合时,我会让盒子伸出来.

有没有办法保持向后兼容性,没有条件和外部样式表?

看代码:

.class {
    float:left; 
    border:solid 1px #AAA; 
    position:absolute; 
    z-index:1; 
    text-align:left; 
    width:350px; 
    margin: 12px 0px 0px 0px; 
    background:#FFFFFF; 
    border-radius:5px; 
    box-shadow:5px 5px 5px #BBBBBB; 
    filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr=#f5f5f5, endColorstr=#FFFFFF); 
}

<div class="class">this</div>
Run Code Online (Sandbox Code Playgroud)

Ric*_*haw 14

我建议(对所有人来说!)使用Paul Irish的技术,如下所示:

<!--[if lt IE 7 ]> <body class="ie6"> <![endif]--> 
<!--[if IE 7 ]>    <body class="ie7"> <![endif]--> 
<!--[if IE 8 ]>    <body class="ie8"> <![endif]--> 
<!--[if IE 9 ]>    <body class="ie9"> <![endif]--> 
<!--[if gt IE 9]>  <body> <![endif]-->
<!--[if !IE]><!--> <body> <!--<![endif]-->
Run Code Online (Sandbox Code Playgroud)

在你的HTML中.

然后在你的CSS中你可以写下这样的东西:

#someID {
    color:lawngreen;
}

.ie6 #someID {
    color:lightgoldenrodyellow;
}

.ie8 #someID, .ie9 #someID {
    color:saddlebrown;
}
Run Code Online (Sandbox Code Playgroud)

针对不同的IE.这是一种简单的技术,可以解决许多问题(没有额外的HTTP请求,所有浏览器的额外代码都可以忽略不计).


com*_*ike 10

我申请后,我失去了角落的半径filter: progid:DXImageTransform Microsoft.gradient....我想这是一个类似的问题.

为了解决这个问题,我使用了这里生成的SVG背景 http://ie.microsoft.com/testdrive/graphics/svggradientbackgroundmaker/default.html

它比听起来更简单.在CSS中,它看起来像

body.ie9 div.test  {
   border-radius:10px  
   background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz...
Run Code Online (Sandbox Code Playgroud)

和lo,圆角和渐变.

$ 2c,*-pike