(一)html部分
- H5 新標(biāo)簽在 IE 9 以下 的瀏覽器識(shí)別
<!--[ if lt IE 9] >
<script type = "text/javascript" src = "js/html5shiv.js" >< /script>
<![endif] -->
html5shiv.js 下載 地址[https://github.com/aFarkas/html5shiv/releases]
- ul標(biāo)簽內(nèi)外邊距問題 ul標(biāo)簽在IE6\IE7中嫁赏,有個(gè)默認(rèn)的外邊距筷转,但是在IE8以上及其他瀏覽器中有個(gè)默認(rèn)的內(nèi)邊距易猫。 解決 方法: 統(tǒng)一 設(shè)置ul的內(nèi)外 邊距 為 0
(二)CSS 樣式的兼容性
- css的hack問題:主要針對(duì)IE的不同版本蜜徽,不同的瀏覽器的寫法不同
IE的條件注釋hack:
<!--[if IE 6]>此處內(nèi)容只有IE6.0可見<![endif]-->
<!--[if IE 7]>此處內(nèi)容只有IE7.0可見<![endif]-->
- IE6雙邊距問題:IE6在浮動(dòng)后,又有橫向的margin,此時(shí),該元素的外邊距是其值的2倍 解決辦法:display:block;
- IE6下圖片的下方有空隙 解決方法:給img設(shè)置display:block;
- IE6下兩個(gè)float之間會(huì)有個(gè)3px的bug 解決辦法:給右邊的元素也設(shè)置float:left;
- IE6下沒有min-width的概念,其默認(rèn)的width就是min-width
- IE6下在使用margin:0 auto;無法使其居中 解決辦法:為其父容器設(shè)置text-align:center;
- 被點(diǎn)擊過后的超鏈接不再具有hover和active屬性
解決辦法:按lvha的順序書寫css樣式近刘,
": l ink": a標(biāo)簽還未被訪問的狀態(tài);
": v isited": a標(biāo)簽已被訪問過的狀態(tài)臀晃;
": h over": 鼠標(biāo)懸停在a標(biāo)簽上的狀態(tài)觉渴;
": a ctive": a標(biāo)簽被鼠標(biāo)按著時(shí)的狀態(tài); - 在使用絕對(duì)定位或者相對(duì)定位后徽惋,IE中設(shè)置z-index失效案淋,原因是因?yàn)槠湓匾蕾囉诟冈氐膠-index,但是父元素默認(rèn)為0险绘, 子高父低踢京,所以不會(huì)改變顯示的順序
- IE6下無法設(shè)置1px的行高,原因是由其默認(rèn)行高引起的 解決辦法:為期設(shè)置overflow:hidden;或者line-height:1px; **
(三)JavaScript的兼容性
- 標(biāo)準(zhǔn)的事件綁定方法函數(shù)為addEventListener宦棺,但I(xiàn)E下是attachEvent瓣距;
- 事件的捕獲方式不一致,標(biāo)準(zhǔn)瀏覽器是由外至內(nèi)代咸,而IE是由內(nèi)到外蹈丸,但是最后的結(jié)果是將IE的標(biāo)準(zhǔn)定為標(biāo)準(zhǔn)
- window.event獲取的。并且獲取目標(biāo)元素的方法也不同侣背,標(biāo)準(zhǔn)瀏覽器是event.target白华,而IE下是event.srcElement
- 在低版本的IE中獲取的日期處理函數(shù)的值不是與1900的差值慨默,但是在高版本的IE中和標(biāo)準(zhǔn)瀏覽器保持了一致贩耐,獲取的值也是與1900的差值。 比如:var year= new Date().getYear();
- ajax的實(shí)現(xiàn)方式不同厦取,這個(gè)我所理解的是獲取XMLHttpRequest的不同潮太,IE下是activeXObject
- IE中不能操作tr的innerHtml
- 獲得DOM節(jié)點(diǎn)的父節(jié)點(diǎn)、子節(jié)點(diǎn)的方式不同 其他瀏覽器:parentNode parentNode.childNodes
IE:parentElement parentElement.children