1. 程式人生 > >html通過css來設定半透明背景

html通過css來設定半透明背景

Html/Css標籤透明度效果的實現,在html中,實現半透明背景,在HTML Div+Css程式設計中,為了實現版透明,通常有3中做法。

第一種是HTML5的透明,在H5中支援透明背景顏色,但遺憾的是,H5中的辦透明背景顏色只支援 rgba的寫法,不支援16進位制的寫法

如:

background-color:rgba(0,152,50,0.7);// -->70%的不透明度
 
background-color:transparent;支援完全透明
?

在傳統瀏覽器中,IE瀏覽器的獨特性也是某些透明度設定的不確定性因素

一般來說,firefox和webkit,khtml陣營中實現透明的方式非常簡單,也包括IE9+及大於IE9的瀏覽器使用上述HTML5設定透明。

第二種是使用半透明粒子圖片,圖案或者漸變半透明PNG圖片,這種方法是相容性相容性的,除了IE6需要使用外掛來修改PNG不透明的bug外,

支援性非常好,設定可以重複,還可以定位,在H5中也可以設定大小,不過在網頁中追求極致的話載入圖片越少越好。

(粒子:透明度勻稱的圖片裁剪至5px * 5px以下,這樣載入速度要快的多)

background:url(path/my_png_bg.png) no-repeat center center scroll;
?

第三種方式是使用透明度+背景顏色或者背景圖片來實現。
background-color:rgb(0,152,50);
opacity:0.7;
background:url(path/my_bg.jpg) no-repeat center center scroll;
opacity:0.7;

那麼,問題來了,IE6-IE8完全不支援 opacity,所以還得考慮一下 IE的濾鏡

IE中有很多濾鏡,其中使用alpha通道來設定不透明度

filter:(opactity=70)
?

因此上述方案改造如下

background-color:rgb(0,152,50);
opacity:0.7;
filter:alpha(opacity=70);
background:url(path/my_bg.jpg) no-repeat center center scroll;
opacity:0.7;
filter:alpha(opacity=70);

 

注意:opacity或者alpha的值強調的是“不”透明度

推薦使用第三種方案

<html>
    <head>
        <meta charset="utf-8">
        <title>Opacity</title>
        <meta http-equiv="X-UA-Compatible" content="IE=7,chrome=1.0">
 
        <style type="text/css" rel="stylesheet">
            *{
                padding: 0px;
                margin:0px;
            }
            .mainbox{
                width: 200px;
                height: 200px;
                clear: both;
                overflow: hidden;
                margin: 100px auto 0px auto;
                background-color: #f06;
            }
            .sub-mainbox
            {
                width: 250px;
                height: 200px;
                margin: -50px auto 0px auto;
                border:1px solid white;
                border-radius: 5px;
                /**background-color:rgb(0,152,50);**/
                background:url(path/my_bg.jpg) no-repeat center center scroll;
                opacity: 0.7;
                filter:alpha(opacity=70);
            }
        </style>
    </head>
    <body>
 
        <div class="mainbox">
             
        </div>
 
        <div class="sub-mainbox">
             
        </div>
 
    </body>
</html>


轉載自:http://my.oschina.net/ososchina/blog/345311
filter:alpha(opacity=50);-moz-opacity:0.5;-khtml-opacity: 0.5;opacity: 0.5;