瀏覽器相容性
前端開發遇到的瀏覽器相容性問題
產生這個問題的主要原因是不同瀏覽器的核心不同,對網頁的解析結果就產生了差異。
解決瀏覽器相容性問題,主要從三方面考慮:html, css, js.
html部分
1. 呼叫CDN的html5shiv。html5shiv.js可以實現讓IE低版本瀏覽器識別並支援html5標籤。
2. img標籤在圖片不存在的情況下,各瀏覽器的解析不一致。在chrome下顯示的是一張破損的圖片,在firefox下顯示的是alt的文字,而在IE中顯示的是破損的圖片加文字。
3. ul標籤內外邊距問題。ul標籤在IE6IE7中,有個預設的外邊距,但是在IE8以上及其他瀏覽器中有個預設的內邊距。解決方法:統一設定ul的內外邊距為0。
css部分
1. css的hack問題。主要針對IE的不同版本,不同版本的寫法不同:
<!--[if IE 6]>此處內容只有IE6.0可見<![endif]-->
<!--[if IE 7]>此處內容只有IE7.0可見<![endif]-->
<!--[if gte IE 7]>目標IE版本大於或等於7<![endif]-->
2. IE6雙邊距問題。IE6在浮動後,又有橫向的margin,此時,該元素的外邊距是其值的2倍,解決辦法:display:inline。
3. IE6下圖片的下方有空隙,解決方法:給img設定display:block。
4. IE6下兩個float之間會有個3px的bug,解決辦法:給右邊的元素也設定float:left。
5. IE6下沒有min-width的概念,其預設的width就是min-width。
6. IE6下使用margin:0 auto,無法使元素居中,解決辦法:為其父容器設定text-align:center。
7. 被點選過後的超連結不再具有hover和active屬性。解決辦法是按“lvha”的順序書寫css樣式:
“:link”: a標籤還未被訪問的狀態;
“:visited”: a標籤已被訪問過的狀態;
“:hover”: 滑鼠懸停在a標籤上的狀態;
“:active”: a標籤被滑鼠按著時的狀態。
8. 在使用絕對定位或者相對定位後,IE中設定z-index失效,原因是因為其元素依賴於父元素的z-index,但是父元素預設為0, 子高父低,所以不會改變顯示的順序。
9. IE6下無法設定1px的行高,原因是由其預設行高引起的,解決辦法:為其設定overflow:hidden;或者line-height:1px。
10. 不同瀏覽器的標籤預設的外補丁和內補丁不同,解決方案:css裡 *{margin:0;padding:0;}
js部分
1. 標準的事件繫結方法函式為addEventListener,但IE下是attachEvent。
2. 事件的捕獲方式不一致,標準瀏覽器是由外至內,而IE是由內到外,但是最後的結果是將IE的標準定為標準。
3. 我們常說的事件處理時的event屬性,在標準瀏覽器其是傳入的,IE下由window.event獲取的。並且獲取目標元素的方法也不同,標準瀏覽器是event.target,而IE下是event.srcElement。
4. 在低版本的IE中獲取的日期處理函式的值不是與1900的差值,但是在高版本的IE中和標準瀏覽器保持了一致,獲取的值是與1900的差值。比如:var year= new Date().getYear(),在IE中會獲得當前年,但是在firefox中則會獲得當前年與1900的差值。
5. ajax的實現方式不同,這個我所理解的是獲取XMLHttpRequest的不同,IE下是activeXObject。
6. IE中不能操作tr的innerHtml。
7. 獲得DOM節點的父節點、子節點的方式不同,其他瀏覽器:parentNode,parentNode.childNodes,IE:parentElement,parentElement.children。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3486/viewspace-2825203/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- win10瀏覽器相容性怎麼設定_win10瀏覽器相容性設定方法Win10瀏覽器
- Element屬性方法的瀏覽器相容性概覽瀏覽器
- 幾款瀏覽器相容性測試工具瀏覽器
- 【css3】瀏覽器核心及其相容性CSSS3瀏覽器
- edge瀏覽器相容性設定在哪 新版edge瀏覽器相容模式怎麼弄瀏覽器模式
- Web字型格式介紹及瀏覽器相容性一覽Web瀏覽器
- angular瀏覽器相容性問題解決方案Angular瀏覽器
- 各大瀏覽器滾動條相容性問題瀏覽器
- 新版edge瀏覽器相容模式怎麼設定 edge瀏覽器相容性設定在哪裡瀏覽器模式
- 主流瀏覽器相容性問題與解決方案瀏覽器
- 瀏覽器相容性問題解決方案 · 總結瀏覽器
- 如何機智地回答瀏覽器相容性問題瀏覽器
- 12款很棒的瀏覽器相容性測試工具瀏覽器
- edge瀏覽器找不到相容性檢視設定 新版edge瀏覽器相容模式怎麼設定瀏覽器模式
- 關於CSS3及瀏覽器相容性問題CSSS3瀏覽器
- robot framework 使用三:瀏覽器相容性自己主動化Framework瀏覽器
- 【瀏覽器】瀏覽器基本工作原理瀏覽器
- 超好用的瀏覽器相容性測試工具,趕緊收藏!瀏覽器
- 針對IE9瀏覽器的CSS 相容性寫法IE9瀏覽器CSS
- robot framework 使用三:他們主動瀏覽器的相容性Framework瀏覽器
- 用CSS hack技術解決瀏覽器相容性問題CSS瀏覽器
- CSS瀏覽器相容性的4個解決方案:瀏覽器CSS樣式初始化、瀏覽器私有屬性,CSS hack語法和自動化外掛CSS瀏覽器
- 瀏覽器瀏覽器
- Chrome 瀏覽器修改 UA 模擬其它瀏覽器,包括移動瀏覽器Chrome瀏覽器
- 5 個技巧避免不必要的瀏覽器相容性問題瀏覽器
- 基石-初見瀏覽器(一):瀏覽器渲染瀏覽器
- Min瀏覽器: 更快更輕量瀏覽器瀏覽器
- .net火狐瀏覽器 ie瀏覽器 判斷瀏覽器
- Mac上如何測試IE瀏覽器相容性-虛擬機器解決方案Mac瀏覽器虛擬機
- microsoft edge是ie瀏覽器嗎 edge瀏覽器和ie瀏覽器一樣嗎ROS瀏覽器
- 前端面試瀏覽器系列:瀏覽器快取前端面試瀏覽器快取
- win10系統360瀏覽器相容性站點怎麼新增Win10瀏覽器
- “木偶”瀏覽器瀏覽器
- 瀏覽器原理瀏覽器
- 瀏覽器核心瀏覽器
- vivaldi瀏覽器瀏覽器
- Mozilla瀏覽器瀏覽器
- 瀏覽器引擎瀏覽器