第140天:前端開發中瀏覽器相容性問題總結(一)
我們在開發的時候會明確專案要相容哪些瀏覽器的最低版本,我之前的專案要求相容IE8.0以上的版本,Chrome 48以上,FireFox 44以上。有了這些最基本的要求,在開發中就是要考慮到CSS樣式和JavaScript的在這些瀏覽器的相容性了
一、html部分
1.H5新標籤在IE9以下的瀏覽器識別
<!–[if lt IE 9]>
<script type=”text/javascript” src=”js/html5shiv.js”></script>
<![endif]–>
html5shiv.js下載地址
https://github.com/aFarkas/html5shiv/releases
2.ul標籤內外邊距問題
ul標籤在IE6IE7中,有個預設的外邊距,但是在IE8以上及其他瀏覽器中有個預設的內邊距。
解決方法:統一設定ul的內外邊距為0
二、CSS樣式的相容性
1.css的hack問題:主要針對IE的不同版本,不同的瀏覽器的寫法不同
IE的條件註釋hack:
<!–[if IE 6]>此處內容只有IE6.0可見<![endif]–>
<!–[if IE 7]>此處內容只有IE7.0可見<![endif]–>
2.IE6雙邊距問題:IE6在浮動後,又有橫向的margin,此時,該元素的外邊距是其值的2倍
解決辦法:display:block;
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;
三、JavaScript的相容性
1.標準的事件繫結方法函式為addEventListener,但IE下是attachEvent;
2.事件的捕獲方式不一致,標準瀏覽器是由外至內,而IE是由內到外,但是最後的結果是將IE的標準定為標準
3.window.event獲取的。並且獲取目標元素的方法也不同,標準瀏覽器是event.target,而IE下是event.srcElement
4.在低版本的IE中獲取的日期處理函式的值不是與1900的差值,但是在高版本的IE中和標準瀏覽器保持了一致,獲取的值也是與1900的差值。
比如:var year= new Date().getYear();
5.ajax的實現方式不同,這個我所理解的是獲取XMLHttpRequest的不同,IE下是activeXObject
6.IE中不能操作tr的innerHtml
7.獲得DOM節點的父節點、子節點的方式不同
其他瀏覽器:parentNode parentNode.childNodes
IE:parentElement parentElement.children
8、常見CSS屬性相容
- inline-block: >=ie8
- min-width/min-height: >=ie7
- :before,:after: >=ie8
- div:hover: >=ie7
- inline-block: >=ie8
- background-size: >=ie9
- 圓角: >= ie9
- 陰影: >= ie9
- 動畫/漸變: >= ie10
相關文章
- 瀏覽器相容問題處理總結瀏覽器
- 前端相容性問題總結前端
- angular瀏覽器相容性問題解決方案Angular瀏覽器
- 各大瀏覽器滾動條相容性問題瀏覽器
- 前端chrome瀏覽器除錯總結前端Chrome瀏覽器除錯
- 如何機智地回答瀏覽器相容性問題瀏覽器
- 主流瀏覽器相容性問題與解決方案瀏覽器
- 瀏覽器相容性瀏覽器
- 對瀏覽器css相容性的學習理解及問題解決彙總瀏覽器CSS
- 前端面試總結——http、html和瀏覽器篇前端面試HTTPHTML瀏覽器
- 記一次開發CefSharp做瀏覽器時Shopify繫結不上Paypal問題瀏覽器
- Chrome(谷歌瀏覽器 )使用總結(一)——快捷鍵Chrome谷歌瀏覽器
- 瀏覽器相關問題瀏覽器
- 瀏覽器知識點總結瀏覽器
- webpack 中版本相容性問題錯誤總結Web
- React開發中遇到的問題總結React
- 工作總結:nginx開發中的問題Nginx
- 前端開發需要了解的瀏覽器通識前端瀏覽器
- 如何定位瀏覽器卡死問題瀏覽器
- chrome 谷歌瀏覽器,F12 開發者工具開啟太慢問題Chrome谷歌瀏覽器
- 前端發展史及瀏覽器核心前端瀏覽器
- 前端面試瀏覽器系列:瀏覽器快取前端面試瀏覽器快取
- 一文解決瀏覽器跨域問題瀏覽器跨域
- win10瀏覽器相容性怎麼設定_win10瀏覽器相容性設定方法Win10瀏覽器
- vivo瀏覽器的快速開發平臺實踐-總覽篇瀏覽器
- 前端開發者應該明白的瀏覽器工作原理前端瀏覽器
- 測試開發之前端篇-瀏覽器開發者工具使用(TODO)前端瀏覽器
- [20191118]使用Chrome瀏覽器問題.txtChrome瀏覽器
- 導航的瀏覽器相容問題瀏覽器
- Android 日常開發問題總結Android
- 開發中常見問題總結
- Chrome 瀏覽器中,使用 Shift + Esc 開啟工作管理員 / 瀏覽器程式管理 結束程式Chrome瀏覽器
- 瀏覽器攔截開啟新視窗情況總結瀏覽器
- 前端跨域問題總結前端跨域
- 幾款瀏覽器相容性測試工具瀏覽器
- 基於CefSharp開發瀏覽器(八)瀏覽器收藏夾欄瀏覽器
- 好程式設計師前端教程-關於瀏覽器的相容問題程式設計師前端瀏覽器
- edge瀏覽器相容性設定在哪 新版edge瀏覽器相容模式怎麼弄瀏覽器模式
- TopK問題,陣列中第K大(小)個元素問題總結TopK陣列