如何将RGBA转换为旧IE浏览器的过滤器

时间:2014-03-20 13:03:56

标签: html css internet-explorer internet-explorer-8

我有以下CSS代码,它将背景设置为具有不透明度的颜色:

    #second-menu-navi a {
        float:left;
        width:125px;
        height:40px;
        line-height: 40px;
        vertical-align: middle;
        font-size:11px;
        color:#ffffff;
        text-decoration: none;
        background: rgb(1, 55, 97);
        background: rgba(1, 55, 97, .85); /*#013761; /*url('theImages/nav_menu_85_b.png') repeat; /*#013761;*/
        margin:0 3px 0 0 !important;
        /*background-image: none !important;*/
        padding:0 !important;

        -moz-border-radius-bottomleft: 4px; 
        -webkit-border-bottom-left-radius: 4px; 
        -khtml-border-bottom-left-radius: 4px; 
        border-bottom-left-radius: 4px;

        -moz-border-radius-bottomright: 4px; 
        -webkit-border-bottom-right-radius: 4px; 
        -khtml-border-bottom-right-radius: 4px; 
        border-bottom-right-radius: 4px;

        outline:none;

        filter:filter:progid:DXImageTransform.Microsoft.Alpha(opacity=85);
        /* For IE 8*/
        -ms-filter: "filter:progid:DXImageTransform.Microsoft.Alpha(opacity=85);";
    }
#tab-1:active, #tab-1:hover {
    background-color: #155E9B;
}
#tab-2:active, #tab-2:hover {
    background-color: #159B77;
}
#tab-3:active, #tab-3:hover {
    background-color: #1E9B15;
}
#tab-4:active, #tab-4:hover {
    background-color: #356101;
}
#tab-5:active, #tab-5:hover {
    background-color: #9B2B15;
}
#tab-6:active, #tab-6:hover {
    background-color: #9B1574;
}
#tab-7:active, #tab-7:hover {
    background-color: #70159B;
}
#break-line-2 {
    width:100%;
    height:7px;
    border-top:1px solid #02233C;
    background-color:#013761;
    position: fixed;
    top: 62px;
}

HTML:

<div id="second-menu-navi" class="navi">
            <a href="" id="tab-1">Why Choose Us</a>
            <a href="" id="tab-2">Physicians</a>
            <a href="" id="tab-3">Medical Specialties</a>
            <a href="" id="tab-4">Locations</a>
            <a href="" id="tab-5">Urgent Care</a>
            <a href="" id="tab-6">Radiology</a>
            <a href="" id="tab-7">Lab</a>
        </div>
</div>

在FF / Chrome / IE&gt; = 10中效果很好。

如何编辑过滤器代码以确保它在IE中显示的内容与不支持rgba()的内容相同?

2 个答案:

答案 0 :(得分:2)

快速谷歌搜索给了我这个网站,它有一个简单的转换器。输入您的RGBA代码,它为您输出滤镜...

http://kimili.com/journal/rgba-hsla-css-generator-for-internet-explorer/

使用转换器:rgba(1, 55, 97, .85)

成为这个...

{
background: transparent;
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#D8013761,endColorstr=#D8013761)"; /* IE8 */
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#D8013761,endColorstr=#D8013761);   /* IE6 & 7 */
      zoom: 1;
}

答案 1 :(得分:1)

尝试将-ms-filter行放在filter之前,否则它将无法用于IE8。有关 this blog post 的一些信息,请参见 this CSSTricks comment