解決ie6/7/8iframe背景透明的問題

根據W3C CSS 2.1 規範規定,'background-color' 特性的默認值爲 'transparent',即透明;可是IE6/IE7/IE8中 BODY 元素的背景色不是 transparent,而是 #FFFFFF;html


在iframe中這個背景是其自己,不是iframe內的html元素的,因此,只對iframe進行相關設置就能去掉這個背景。ide


iframe有個allowTransparency的屬性,意思是是否容許透明;可是IE6/IE7/IE8中倒是白色;因此咱們能夠這樣加上它 <iframe allowTransparency="true" />spa

若是爲了追求更好的保障的話,就要加上iframe{ transparent;}< /p>orm


但還有一些特殊狀況:有時候iframe不是HTML中自己寫的,是加載進來的,這時雖然以上的CSS能夠生效,但卻無法給iframe自己加上allowTransparency屬性了,這時候要怎麼作?很簡單htm

給它來一段js代碼:ci

window.onload = function(){
    var ifra=document.getElementsByTagName('IFRAME');
    for(var i=0,l=ifra.length;i<l;i++) {
        ifra[i].setAttribute('allowTransparency','true');
    }
}



至此,覺得問題解決。可忽然發現仍是白色的背景,WHY?那是如前面說的IE6/IE7/IE8中 BODY 元素的背景色不是 transparent的,因此get

對iframe裏的body也要設置透明化:transparent;iframe


在iframe中設置屬性爲
<iframe src="left.htm" scrolling="no" allowtransparency=true width="209" height="900" frameborder="0"></iframe>

在left.htm設置<body style="background-color:transparent">

若是不進行設置,則默認的背景色是白色.
it

相關文章
相關標籤/搜索