2009-10-14 78 views
0

我一直在試圖解決這個問題,因爲在過去的幾個網站上我一直在努力解決問題(雖然他們還沒有活過),而寧可比試圖制定一個解決方案,我想嘗試發現問題的根源。影響元素填充的Flash/SWF對象

這裏是有問題的網站:(URL刪除)

基本上我出的編碼這個網頁是純HTML,然後插入JavaScript和Flash元素,因爲我完成了他們一段時間。當我添加Flash(使用SWF對象)時,我注意到它已經將它下面的元素降低了大約5px,並且只在Firefox和Safari中(Internet Explorer,足夠奇怪,不受影響)。關閉Flash或禁用JavaScript也會關閉Flash,從而消除了額外的填充。

有人能告訴我什麼是造成這個問題?我沒有注意到任何主要的JS或CSS錯誤(除了針對IE的少數黑客),所以我很難過。

回答

1

嘗試刪除頁面上的DIV之間的空白,並嘗試將swf對象放入其自己的DIV中。這樣你可以在不加載swf的情況下控制頁面的外觀,並且在加載時不會影響其他元素。

+0

的div之間的空白應不會對的輸出的任何軸承頁。無論如何,我嘗試過,並沒有奏效。 swf對象確實有它自己的div,名爲「flashReplace」。 – Andrew 2009-10-14 14:56:51

+0

但是,如果您在頁面加載後檢查DOM,則div將被對象替換。 – Marius 2009-10-14 15:10:26

+0

儘管我不喜歡它(出於語義的目的),但嵌套工作。在這種情況下,我實際上只是創建了一個新的容器div並將我的CSS設置應用到它,然後將SWF Object ID切換到沒有Flash的人的圖像。蛋糕。 – Andrew 2009-10-14 17:01:48

0

儘量明確設置對象元素的margin和padding爲0px

你使用SWFObject 2.0,它做的事情略有不同的老SWFObject的。舊的會植入目標div的INSIDE。新的似乎實際上用對象標籤取代了整個目標DIV。

我不喜歡的東西,這就是爲什麼我仍然使用舊的SWFObject。

2

嘗試添加line-height:0;到div周圍的閃光的SWF:

<div id="flashDiv" style="line-height:0;"> 

這爲我工作。

0

SWFObject插入一個<對象>元素。有些瀏覽器將<對象>視爲內聯元素,有些瀏覽器將其視爲塊級元素。

的解決方法是使用CSS,以確保對象總是作爲塊級元素進行處理:

object { display: block; } 

See the SWFObject FAQ on the subject.