2009年9月14日 星期一

2009年5月20日 星期三

IE與Firefox下對CSS解析的區別 - 定義div高度firefox解析問題【轉載】

轉載自http://blog.csdn.net/jawsy/archive/2008/09/19/2949874.aspx
1. 對高度的解析IE:將根據內容的高度變化,包括未定義高度的圖片內容,即使定義了高度,當內容超過高度時,將使用實際高度Firefox:沒有定義高度時,如果內容中包括了圖片內容,Firefox的高度解析是根據印刷標準,這樣就會造成和實際內容高度不符合的情況;當定義了高度,但是內容超過高度時,內容會超出定義的高度,但是區域使用的樣式不會變化,造成樣式錯位。結論:大家在可以確定內容高度的情況下最好定義高度,如果真的沒有辦法定義高度,最好不用使用邊框樣式,否則樣式肯定會出現混亂!
3.佈局問題當你在寫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表格,表格在兼容性方面有著不錯的表現.
4.鼠標樣式firefox不支持hand,但ie支持pointer解決方法: 統一使用pointer
5. padding 問題padding 5px 4px 3px 1px FireFox無法解釋簡寫,必須改成 padding-top:5px; padding-right:4px; padding-bottom:3px; padding-left:1px;
6. 消除ul、ol等列表的縮進消除ul、ol等列表的縮進樣式應寫成:list-style:none;margin:0px;padding:0px;其中margin屬性對IE有效,padding屬性對FireFox有效
7. CSS透明IE:filter:progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=60)。FF:opacity:0.6。
8. CSS圓角IE:不支持圓角。FF: -moz-border-radius:4px,或者-moz-border-radius-topleft:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius- bottomright:4px;。
9. CSS雙線凹凸邊框IE:border:2px outset;。FF:-moz-border-top-colors: #d4d0c8 white;-moz-border-left-colors: #d4d0c8 white;-moz-border-right-colors:#404040 #808080;-moz-border-bottom-colors:#404040 #808080;
10. 濾鏡IE中支持使用濾鏡,而Firefox中不支持.
11. 禁止選取網頁內容:在IE中一般用js:obj.onselectstart=function(){return false;};而firefox用CSS:-moz-user-select:none;

[Javascript]getyear()函數在Firefox中顯示年份的問題

在使用Java Script語法時
如果想要顯示出現在的日期
一般都會用到 getYear() 這個函數來抓取目前的年份
在Internet Explore 上通常不會有甚麼問題
但是在遵循W3C標準語法體系的 Firefox 中秀出的年份卻會有點怪怪的
比如說 2008年會變成 108年
其實這個地方Firefox的顯示才是正確的
在火狐(Firefox)中採用了對 getYear() 函數正確的定義為:
秀出從 1900 開始到現在的年份數例如: 2009年 = 1900 + 109 年
故顯示為 109年只是在Internet Explorer 中將這個標籤的定義搞錯了
解決的方法很簡單
如要顯示出完整的西元年數字可以使用另一個函數: getFullYear()
即可不會有任何加減的問題

[Javascript] document.getElementId 在IE和Firefox 的相異性

IE:
document.getElementId("month") 正常
document.getElementsByName("month") 正常


Firefox:
document.getElementId("month") 異常 需在month加屬性id
document.getElementsByName("month") 正常