引入
魷魚項目要求要做一個半透明的罩層,而且罩層上有一個類似alert框的div。因為如果用opacity的話,父級有了透明度就會影響子級,所以用rgba()就能解決透明度繼承的問題。但問題又來了,rgba()是css3的新屬性,所以IE8及以下瀏覽器不兼容,這怎么辦呢?終於我找到了解決辦法。
出現問題
如果用rgba(),在非IE8及以下瀏覽器是這樣的效果:
如果在IE8及以下瀏覽器就變成了這樣:
透明度消失了!!!!!!
解決辦法
我們先來解釋以下rgba
rgba:
rgba的含義,r代表red,g代表green,b代表blue,a代表透明度。
rgba(0,0,0,.5) 這樣就代表了黑色,透明度為0.5
要想解決在IE8下的透明度問題,可以增加這樣一句話:
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#7f000000,endColorstr=#7f000000); /*IE8支持*/
這句話本來是做漸變用的,但是這里沒有漸變效果所以startColorstr和endColorstr設置為同一種顏色。
這里的#7f000000,#7f代表的是透明度,000000代表的是顏色,下面是透明度的對應表:
這樣就能完美解決透明度的問題了!~