哪裡可以比較系統的學習前端代碼瀏覽器兼容問題?
01-06
比如書或是博客
W3Help 上有相當多的兼容性分析文章,質量很高:http://w3help.org/zh-cn/
摘錄一些:- SJ9001: IE6 IE7 IE8 的函數聲明和函數表達式的實現與其他瀏覽器有差異 http://w3help.org/zh-cn/causes/SJ9001
- SJ9002: Firefox 對條件判斷語句塊內的函數聲明的處理與其他瀏覽器有差異 http://w3help.org/zh-cn/causes/SJ9002
- SJ5003: Safari Chrome 中用 for in 可以遍歷出 Date Array String 對象中被更新的原型方法 http://w3help.org/zh-cn/causes/SJ5003
- SJ2004: 各瀏覽器中 Date 對象的 toLocalString 方法的返回值不一致 http://w3help.org/zh-cn/causes/SJ2004
- SJ9005: IE6 IE7 IE8 會忽略 JavaScript 代碼中大括弧之後的第一個分號 http://w3help.org/zh-cn/causes/SJ9005
- SJ9006: 在 IE6 IE7 IE8(Q) 中不能在 JSON 字元串或對象直接量的最後一個鍵值對後加 "," http://w3help.org/zh-cn/causes/SJ9006
- SJ2007: IE6 IE7 IE8 不會忽略數組直接量的末尾空元素 http://w3help.org/zh-cn/causes/SJ2007
- SJ9008: 僅 IE 支持使用含中文標點符號的變數名 http://w3help.org/zh-cn/causes/SJ9008
- SJ9009: 元素的內聯事件處理函數的特殊作用域在各瀏覽器中存在差異 http://w3help.org/zh-cn/causes/SJ9009
- SJ9010: 各瀏覽器中 Date 對象的 getYear 方法的返回值不一致 http://w3help.org/zh-cn/causes/SJ9010
- SJ9011: Chrome Opera 中 for-in 語句遍歷出對象屬性的順序與定義的不同 http://w3help.org/zh-cn/causes/SJ9011
- SJ9012: IE6 IE7 IE8(Q) 不支持 JSON 對象 http://w3help.org/zh-cn/causes/SJ9012
CSS 方面的問題可參考 http://haslayout.net/css/ ,以及 @sofish 同學的總結 http://sofish.de/1400 。
不過瀏覽器兼容性方面的 bug 實在太多(感謝 IE 貢獻了絕大部分),上面提供的肯定只有很小一部分。想要系統的學習兼容性方面的知識會有些困難,並且我覺得專門學習這個也沒有太大必要,尤其對初學者來說。
不知道樓主是不是剛開始接觸前端知識,如果是的話,建議樓主先去學習 HTML 和 CSS 的標準用法。然後想要實踐的時候,選擇一個先進一點的瀏覽器,例如 Chrome 或 Firefox,先不用考慮兼容性,只考慮自己的代碼是不是符合標準(可以用 W3C Validator 驗證你的 HTML 和 CSS 代碼,地址 http://validator.w3.org/ 和 http://jigsaw.w3.org/css-validator/),等你的代碼符合標準並且在這個瀏覽器上達到你要的效果之後,再去其他瀏覽器上調試。
在低級瀏覽器上調試時,你可能會遇到各種奇怪的問題。這時如果有自己解決不了的問題,你再去針對這一問題去搜索,通常 Google 上都會有解決辦法的。最重要的是,在你解決了一個兼容性問題之後,自己做好記錄,包括這個 bug 的觸發條件和解決辦法。這樣積累下來的經驗印象更深刻,之後再遇到類似的問題時也更容易解決。多實踐多總結
推薦閱讀:
※你寫過最複雜的表單頁面是怎樣的,你是怎麼解決的?
※Webstorm 的 Tab 鍵怎樣調整縮進值?
※為了保持Mac,Linux,Windows等平台中文字體的一致性和美觀性,你會使用哪些font-family?
※自學前端,我的現在水平能不能找到工作?
※開發者能從第三方視頻網站能獲取到的最大視頻預覽圖是多大?