IE, FireFox, Opera 瀏覽器支援CSS實現Alpha半透明的方法

來源:互聯網
上載者:User

1、對於IE使用filter,對於非IE瀏覽器使用png背景圖填充

先請看如下代碼:

filter:alpha(opacity=50);       /* IE */
-moz-opacity:0.5;              /* Moz + FF */
opacity: 0.5;           /* 支援CSS3的瀏覽器(FF 1.5也支援)*/

簡單解釋,IE使用私人屬性filter:alpha(opacity),Moz Family使用私人屬性-moz-opacity,而標準的屬性是opacity(CSS 3, Moz Family部分支援CSS3)。後面的數值是透明度,使用百分比或者小數(alpha(opacity))使用大於0小於100的數值,其實也是百分比,但是需要注意的是,IE下使其私人屬性生效必須觸發其hasLayout,比如設定容器寬度,最通用的方案是{zoom:1}。)。

從上面的代碼中你沒有看到Opera。沒錯,從Opera9開始支援CSS3的opacity了,也沒有其私人的可支援Alpha透明的屬性。

但是,我們知道,Opera是支援Alpha透明的PNG圖片的(當然Moz Family也支援)。所以我們可以使用背景圖片來實現Alpha透明效果。

例子:http://www.omemo.net/neo/lab/alpha/

關鍵在於:

background: transparent url(alpha80.png) left top repeat!important;
background: #ccc;
filter:alpha(opacity=50);

既然Moz Family支援Alpha透明的PNG,所以我們沒有必要使用其私人屬性了。當然,你可以使用標準的opacity,但別同時使用Alpha透明圖片和opacity,這樣的話就成了兩者的混合了。你可以把上面的例子下載過來,然後/*opacity: .5;*/的注釋看看。

這部分內容來自於:http://www.omemo.net/neo/blog/?p=87

2、如想實現父標籤透明,而子標籤不透明,採用對於採用png透明的父標籤來說不存在問題,如果採用alpha值無論ie還是非ie都存在這樣的問題,css聲明了position透明標籤包含的內容都透明。

例如:

<div id="out"><div id="in">不透明<div><div>
   out{
     position: absolute;
     top:0;
     left: 0;
     width: 100%;
     background:url(../img/alpha30.png);/*非ie*/
     filter:alpha(opacity=30);/*ie*/
}
   in{
     background:#fff
}

 

這個時候看到in也是透明的

hack方法:增加一個子標籤,採用css hack 使其在ie下充滿整個父標籤,並使其透明,由於透明部分和不透明部分是兄弟關係,所以不影響。

<div id="out"><div id="in">不透明<div><div id="ie">不透明<div><div>
 out{
     position: absolute;
     top:0;
     left: 0;
     width: 100%;
     background:url(../img/alpha30.png);
     z-index: 100;
}
   in{
     background:#fff
}

*html out{
background:out;
}
*html ie{
     position: absolute;
     top:0;
     left: 0;
     width: 100%;
     height:100%;
     background:url(../img/alpha30.png);
     filter:alpha(opacity=30);
     z-index: -1;/*讓其位於in的下面*/
}

 該想法來自於http://www.webmasterworld.com/forum83/3529.htm

 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.