2009-10-28 71 views
1

我有一個網頁,擁有一個iframe:Div有透明背景時有iframe嗎?

<div style="position:absolute; width:80%; top:100px; left:10%; z-index:5;"> 
    <iframe src="www.google.com" /> 
</div> 

注意iframe的來源可以是來自另一個域,所以我不能在它更改HTML。

除此之外ifame我有一個菜單,並在底部的一些裝飾圖像:

<div id="menu" style="position:absolute; width:100%; top:0px; left:0px; z-index:100;"> 
    ... 
</div> 

<div id="footer" style="position:absolute; width:100%; bottom:0px; left:0px; z-index:0;"> 
    ... 
</div> 

正如你所看到的,我給z-index的每個格,所以應該按照這個順序來顯示:頂部的菜單,其後是帶有iframe的div,最後是頁腳圖像。

我想要的是,iframe(和div擁有它)沒有背景(透明bg顏色,如果你喜歡),所以它後面的背景和頁腳圖像將是可見的。請注意,我只想更改背景顏色;文字不得改變或不透明。

我設法去的背景圖片,並改變它(使用jQuery):

if ($.browser.msie == false) { 
    $(document.getElementById("content").contentDocument.body). 
         css('background', "url('transparent.png')"); 
} 
else { 
    $(document.getElementById("content").Document.body). 
         css('background', "url('transparent.png')"); 
} 

它的工作原理馬麗娟上的iframe,但保持它在某種程度上股利得到一個白色背景。

如果我將div的背景設置爲'transparent.png'圖片,它將不會改變;該div仍然會保存它的白色背景!

如果我用表替換div,iframe會在頁腳圖像後面(儘管它的z-index更大)。

所有我想要的只是看到頁腳圖像該iframe背後...

請幫幫忙,我很絕望...:(

回答

3

嘗試:

background: transparent url('transparent.png'); 

有一點需要注意,IE6不支持Alpha透明的PNG圖像。你會想要一個IE特定的樣式表,並使用IE瀏覽器只爲此。


只是爲了clearify,你arn't試圖擺脫的iframe本身的背景色,而只是能夠看到頁腳和頭是否正確?如果是這種情況,則應該使用HTML4.01文檔類型。

<div style="position:absolute; width:80%; top:100px; left:10%; z-index:5;"> 
    <iframe style="background-color: transparent;" src="testframe.html" allowtransparency="true"></iframe> 
</div> 
+0

非常感謝你,它有用finnaly! 關於你的問題,我確實想擺脫iframe中的背景色;我已經嘗試在iframe上放置allowtransparency =「true」;不知何故,它不在IE8中工作。 我沒有得到你寫的關於IE6的東西; 'transparent.png'會對它起作用嗎? 再次感謝! – 2009-10-30 21:53:27

+0

它的基本要點是,alpha透明度在png中(像透明背景)不會在IE6中呈現,對此有一種破解,通常將它應用於僅限IE的條件樣式表是個好主意。這裏的一些信息:http://stackoverflow.com/questions/130161/ie6-issues-with-transparent-pngs 此外,如果PNG只是一個1x1透明圖像,我會使用一個GIF,因爲它doesn不會受到同樣的限制。通常,在透明膠片中使用alpha透明膠片時,會使用更高級的透明度,例如漸變漸變。 – thismat 2009-11-02 14:12:42

1

我試用了無法複製。這裏的問題是我主要的html:

<div style="background:red;"> 
<div> 
    <iframe src="test2.html" /> 
</div> 
</div> 

而這裏的test2.html:

this is a test file 

這DIS在iframe背後帶有紅色背景的iframe中播放「這是一個測試文件」。你能發佈一些代碼來澄清你的問題嗎?

+0

這不適合我。 我試過你的解決方案多一次,無論是在IE和Firefox;它只是在iframe中放置一個白色背景。 – 2009-10-28 22:37:59

+0

啊,我明白了。這適用於FF3.5,但不適用於IE8。我會發布一些新的東西,如果我能弄明白的話。 – Travis 2009-10-28 23:12:56

0

你嘗試透明背景的div和半透明的背景圖像的iframe?

+0

確實,現在「base」div的bg是可見的,但是我在iframe中的所有文本都會獲得不透明度過濾器,但是它說不可見。我只想將背景變爲透明。 – 2009-10-28 22:45:09

0

CSS:

<style> 
    .hid 
    { 
     filter: alpha(opacity=70); 
     opacity: 0.7; 
     -moz-opacity: 0.7; 
    } 
</style> 

HTML:

<iframe class="hid"></iframe> 

這將這樣的伎倆。 我在IE6上試過了,它在那裏工作。