内联黑客css降低到IE9? (或所有不支持CSS3的浏览器)

时间:2012-01-13 14:20:23

标签: css internet-explorer

我需要一个黑客来将互联网浏览器降低到9,或者更具体;我需要一个内联 CSS黑客攻击非CSS3浏览器

_prop:val -> ie6
*prop:val -> ie6 & ie7
????????? -> ie8 & ie7 & ie8

我正在为这些浏览器使用渐变和图像,但ie8不支持它...所以我只想在必要时加载替代图像

请避免答案建议使用条件化或使用javascript使用外部样式表。我知道这段代码无效,但它只是一件小事。另外我很想知道是否它的可能:))

3 个答案:

答案 0 :(得分:4)

我在项目中使用IE8中的渐变。它确实有效!

 <style>
        #gradient {
            color: #fff;
            height: 100px;
            padding: 10px;
            /* For WebKit (Safari, Google Chrome etc) */
            background: -webkit-gradient(linear, left top, left bottom, from(#00f), to(#fff));
            /* For Mozilla/Gecko (Firefox etc) */
            background: -moz-linear-gradient(top, #00f, #fff);
            /* For Internet Explorer 5.5 - 7 */
            filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#FF0000FF, endColorstr=#FFFFFFFF);
            /* For Internet Explorer 8 */
            -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#FF0000FF, endColorstr=#FFFFFFFF)";
        }
    </style>

对于盒子阴影,似乎有一个像这样的解决方法:

.shadow {  
    zoom: 1;  
    filter: progid:DXImageTransform.Microsoft.Shadow(color='#999999', Direction=0, Strength=3)  
    progid:DXImageTransform.Microsoft.Shadow(color='#999999', Direction=45, Strength=2)  
    progid:DXImageTransform.Microsoft.Shadow(color='#999999', Direction=90, Strength=3)  
    progid:DXImageTransform.Microsoft.Shadow(color='#999999', Direction=135, Strength=2)
    progid:DXImageTransform.Microsoft.Shadow(color='#999999', Direction=180, Strength=3)
    progid:DXImageTransform.Microsoft.Shadow(color='#999999', Direction=225, Strength=2)
    progid:DXImageTransform.Microsoft.Shadow(color='#999999', Direction=260, Strength=3)  
    progid:DXImageTransform.Microsoft.Shadow(color='#999999', Direction=305, Strength=2);  
     -moz-box-shadow: 0 0 5px #222; /*Mozilla-basierte Browser (z.B. Firefox)*/ 
     -webkit-box-shadow: 0 0 5px #222; /*WebKit-basierte Browser (z.B. Safari/Chrome)*/ 
     box-shadow: 0 0 5px #222; /*CSS3 Standard*/ 
 } 
对于border-radius来说,直到ie9才有支持,据我所知。我正在使用几个jQuery插件来实现IE中的border-radius。希望这段代码对你有帮助!

答案 1 :(得分:4)

您不需要黑客,因为没有当前浏览器支持所有CSS3。

相反,只需为旧版浏览器指定回退属性,如下所示:

#selector {
    background: url("gradient.png");
    background: gradient(...);
}

答案 2 :(得分:1)

你需要使用它:

prop: val\9

将\ 9直接放在任何值的末尾将仅针对IE8及以下