DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> CSS入門知識 >> CSS詳解 >> IE與Firefox在獲得對象上的區別(2)
IE與Firefox在獲得對象上的區別(2)
編輯:CSS詳解     

2.總結

2.1在JS中定義各種對象變量名時,盡量使用id,避免使用name。

在IE中,Html對象的ID可以作為document的下屬對象變量名直接使用。在MF中不能,所以在平常使用時請盡量使用id,避免只使用name,而不使用id。

2.2變量名與某Html對象id相同的問題

現有問題
在MF中,因為對象id不作為HTML對象的名稱,所以可以使用與Html對象id相同的變量名,IE中不能。
解決方法
在聲明變量時,一律加上var,以避免歧義,這樣在IE中亦可正常運行。
此外,最好不要取與Html對象id相同的變量名,以減少錯誤。

1.document.all

Firefox可以兼容document.all,但會生成一條警告。可以用getElementById("*")或者getElementByTagName("*)來代替
不過對於document.all.length等屬性,則完全不兼容。

2.parentElement

這個也不兼容。比方說,obj.parentElement.name則應改成obj.parentNode.attributes.getNamedItem("name").nodeValue(不知道如何寫得更簡潔些)

3.event

W3C不支持Windows.event
比方說:
在IE裡面

  1. .....
  2. functiononMenuClick()
  3. {
  4. collapseMenu(event.srcElement);
  5. }

工作正常。不過在Firefox中,則改成:

  1. functiononMenuClick(evt)
  2. {
  3. if(evt==null)
  4. evt=window.event;//ForIE
  5. varsrcElement=evt.srcElement?evt.srcElement:evt.target;
  6. //IE使用srcElement,而Firefox使用target
  7. collapseMenu(srcElement);
  8. }

IE和Firefox在解析CSS方面的區別

◆對高度的解析

IE:將根據內容的高度變化,包括未定義高度的圖片內容,即使定義了高度,當內容超過高度時,將使用實際高度

Firefox:沒有定義高度時,如果內容中包括了圖片內容,MF的高度解析是根據印刷標准,這樣就會造成和實際內容高度不符合的情況;當定義了高度,但是內容超過高度時,內容會超出定義的高度,但是區域使用的樣式不會變化,造成樣式錯位。

結論:大家在可以確定內容高度的情況下最好定義高度,如果真的沒有辦法定義高度,最好不用使用邊框樣式,否則樣式肯定會出現混亂!

◆img對象alt和title的解析

alt:當照片不存在或者load錯誤時的提示;

title:照片的tip說明。

在IE中如果沒有定義title,alt也可以作為img的tip使用,但是在MF中,兩者完全按照標准中的定義使用

結論:大家在定義img對象時,最後將alt和title對象都寫全,保證在各種浏覽器中都能正常使用

◆其他的細節差別

當你在寫CSS的時候,特別是用float:left(或right)排列一竄圖片時,會發現在Firefox裡面正常而IE裡面有問題。無論你用margin:0,還是border:0來約束,都無濟於事。

其實這裡還有另外一個問題,就是IE對於空格的處理,Firefox是忽略的而IE對於塊與塊之間的空格是處理的。也就是說一個div結束後要緊接著一個div寫,中間不要有回車或者空格。不然也許會有問題,比如3px的偏差,而且這個原因很難發現。

非常不走運的是我又碰到了這樣的問題,多個img標簽連著,然後定義的float:left,希望這些圖片可以連起來。但是結果在Firefox裡面正常而IE裡面顯示的每個img都相隔了3px。我把標簽之間的空格都刪除都沒有作用。

後來的解決方法是在img外面套li,並且對li定義margin:0,這樣就解決了IE和Firefox的顯示偏差。IE對於一些模型的解釋會產生很多錯誤問題,只有多多嘗試才能發現原因。這只是一些簡單的區別,在做布局和CSS設計時候可以綜合考慮,但最為有效與簡單的解決兼容問題還是用TABLE表格,表格在兼容性方面有著不錯的表現.

另外在模版的JS設計的時候也需要考慮兩者對代碼的兼容

【編輯推薦】

  1. 十個不被IE6支持的實用CSS屬性
  2. 微軟展示IE9浏覽器 力推IE8將取代IE6市場
  3. 探究IE和Firefox下的2款HTTP調試工具用法
  4. Firefox和IE浏覽器清除緩存方法揭秘
  5. 實現IE6、IE7、IE8多版本浏覽器共存的五種方法
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved