首先看看A級瀏覽器所支持的用CSS實現元素透明的方案:
| 瀏覽器 | 最低 版本 | 方案 |
|---|---|---|
| Internet Explorer | 4.0 | filter: alpha(opacity=xx); |
| 5.5 | filter: progid:DXImageTransform.Microsoft.Alpha(opacity=xx); | |
| 8.0 | filter: "alpha(opacity=xx)"; | |
| Firefox (Gecko) | 0.9 (1.7) | opacity |
| Opera | 9.0 | opacity |
| Safari (WebKit) | 1.2 (125) | opacity |
實際上在IE8中,-ms-filter是filter的別名,兩者區別是-ms- filter的屬相值必須被單引號或雙引號包圍,而filter中則不是必須,而在IE8之前的版本中,filter的屬性值必須不被單引號或雙引號包圍。
IE中的HTML元素要實現透明,則其必須具備layout,這樣的元素有僅可讀的屬性hasLayout,且其值為true。具體情況如下:
body、img、table、tr、th、td等元素的hasLayout一直為true。 type為text、button、file或select的input的hasLayout一直為true。 設置{position:absolute}的元素的hasLayout為true 設置{float:left|right}的元素的hasLayout為true 設置{display:inline-block}的元素的hasLayout為true 設置{height:xx}或{width:xx}的元素必須具體以下兩個條件之一,其hasLayout才能為true: display的值是block,如demo3就不行。 元素在怪癖模式(compat mode)下。 新聞熱點
疑難解答