IE兼容

一、CSS1.根據(jù)不同瀏覽器默認(rèn)設(shè)置不同,頁面可初始化樣式,調(diào)整成一致

2.IE8及以下不支持CSS3

3.IE6不支持png格式圖片

4.IE盒模型跟標(biāo)準(zhǔn)盒模型不同,IE下content部分包含padding+border,即設(shè)置width后,再設(shè)置padding等屬性,寬度會(huì)增加

5.a標(biāo)簽中如果有button, 在IE下不能跳轉(zhuǎn)到herf鏈接,而現(xiàn)代瀏覽器可以,解決:IE下button設(shè)置onclick="window.location.href('#'),現(xiàn)代瀏覽器設(shè)置a中href屬性即可。199) ? "200px" : "auto";//寫成函數(shù)來運(yùn)行function setMaxHeight(elementId, height){var container = document.getElementById(elementId);container.style.height = (container.scrollHeight > (height - 1)) ? height + "px" : "auto";}//函數(shù)示例setMaxHeight('container1', 200);setMaxHeight('container2', 500);

6.IE hasLayout引發(fā)的IE6顯示不正常BUG

解決辦法:設(shè)置height,width等屬性可激活該屬性,推薦設(shè)置zoom:1;

7.IE6雙邊距BUG

元素設(shè)置浮動(dòng)且又設(shè)置相同方向的外邊距時(shí),會(huì)產(chǎn)生雙倍的margin邊距

解決辦法:1.設(shè)置 display:inline; 2.利用IE6 hack _margin-left: 實(shí)際距離/2px;

8.IE6 hasLayout 布局問題

(1)擁有布局的元素不會(huì)收縮

(2)布局元素對(duì)浮動(dòng)進(jìn)行自動(dòng)清理

(3)相對(duì)定位的元素沒有布局

(4)在擁有布局的元素之間外邊距不疊加

(5)在沒有布局的塊級(jí)連接上,單擊區(qū)域只覆蓋文本

(6)在滾動(dòng)時(shí),列表項(xiàng)上的背景圖片間歇性的顯示和消失

9.IE條件注釋<!--[if lt(小)/gt(大) IE 6]> ? ? <![endif]-->


10.IE6奇數(shù)問題

1)字體大小為奇數(shù)之邊框高度少1px

解決方法:字體大小設(shè)置為偶數(shù)或line-height為偶數(shù)

2)line-height,文本垂直居中差1px

解決方法:padding-top代替line-height居中,或line-height加1或減1

3)與父標(biāo)簽的寬度的奇偶不同的居中造成1px的偏離

解決方法:如果父標(biāo)簽是奇數(shù)寬度,則子標(biāo)簽也用奇數(shù)寬度;如果是父標(biāo)簽偶數(shù)寬度,則子標(biāo)簽也用偶數(shù)寬度

11.內(nèi)部盒模型超出父級(jí)時(shí),父級(jí)被撐大

解決方法:父標(biāo)簽使用overflow:hidden

12.line-height默認(rèn)行高bug

解決方法:line-height設(shè)值

13.行標(biāo)簽之間會(huì)有一小段空白

解決方法:float或結(jié)構(gòu)并排(可讀性差,不建議)


14.標(biāo)簽高度無法小于19px

解決方法:overflow: hidden;

15.左浮元素margin-bottom失效

解決方法:顯示設(shè)置高度 or 父標(biāo)簽設(shè)置_padding-bottom代替子標(biāo)簽的margin-bottom or 再放個(gè)標(biāo)簽讓父標(biāo)簽浮動(dòng),子標(biāo)簽

margin- bottom,即(margin-bottom與float不同時(shí)作用于一個(gè)標(biāo)簽)

16.img于塊元素中,底邊多出空白

解決方法:父級(jí)設(shè)置overflow: hidden; 或 img { display: block; } 或 _margin: -5px;

17.li之間會(huì)有間距

解決方法:float: left;

18.塊元素中有文字及右浮動(dòng)的行元素,行元素?fù)Q行

解決方法:將行元素置于塊元素內(nèi)的文字前

19.position下的left,bottom錯(cuò)位

解決方法:為父級(jí)(relative層)設(shè)置寬高或添加*zoom:1

20.子級(jí)中有設(shè)置position,則父級(jí)overflow失效

解決方法:為父級(jí)設(shè)置position:relative


21.CSS選擇器區(qū)分

IE6不支持子選擇器;先針對(duì)IE6使用常規(guī)申明CSS選擇器,然后再用子選擇器針對(duì)IE7+及其他瀏覽器。

/* IE6 專用 */

.content {color:red;}

/* 其他瀏覽器 */

div>p .content {color:blue;} -->

22.IE6背景閃爍

如果你給鏈接、按鈕用CSS sprites作為背景,你可能會(huì)發(fā)現(xiàn)在IE6下會(huì)有背景圖閃爍的現(xiàn)象。造成這個(gè)的原因是由于IE6沒有將背景圖緩存,每次觸發(fā)hover的時(shí)候都會(huì)重新加載,可以用JavaScript設(shè)置IE6緩存這些圖片:

document.execCommand("BackgroundImageCache",false,true);

23.最小高度

IE6 不支持min-height屬性,但它卻認(rèn)為height就是最小高度。解決方法:使用ie6不支持但其余瀏覽器支持的屬性:

#container {min-height:200px; height:auto !important; height:200px;}


24.最大高度

//直接使用ID來改變?cè)氐淖畲蟾叨?/p>

var container = document.getElementById('container');

container.style.height = (container.scrollHeight > 199) ? "200px" : "auto";

//寫成函數(shù)來運(yùn)行

function setMaxHeight(elementId, height){

var container = document.getElementById(elementId);

container.style.height = (container.scrollHeight > (height - 1)) ? height + "px" : "auto";

}

//函數(shù)示例

setMaxHeight('container1', 200);

setMaxHeight('container2', 500);

25.100% 高度

在IE6下,如果要給元素定義100%高度,必須要明確定義它的父級(jí)元素的高度,如果你需要給元素定義滿屏的高度,就得先給html和body定義height:100%;

26.最小寬度:同max-height和max-width一樣,IE6也不支持min-width。

//直接使用ID來改變?cè)氐淖钚挾?/p>

var container = document.getElementById('container');

container.style.width = (container.clientWidth < width) ? "500px" : "auto";

//寫成函數(shù)來運(yùn)行

function setMinWidth(elementId, width){

var container = document.getElementById(elementId);

container.style.width = (container.clientWidth < width) ? width + "px" : "auto";

}

//函數(shù)示例

setMinWidth('container1', 200);

setMinWidth('container2', 500);

27.最大寬度//直接使用ID來改變?cè)氐淖畲髮挾葀ar container = document.getElementById(elementId);container.style.width = (container.clientWidth > (width - 1)) ? width + "px" : "auto";//寫成函數(shù)來運(yùn)行function setMaxWidth(elementId, width){var container = document.getElementById(elementId);container.style.width = (container.clientWidth > (width - 1)) ? width + "px" : "auto";}//函數(shù)示例setMaxWidth('container1', 200);setMaxWidth('container2', 500);

28.浮動(dòng)層錯(cuò)位當(dāng)內(nèi)容超出外包容器定義的寬度時(shí),在IE6中容器會(huì)忽視定義的width值,寬度會(huì)錯(cuò)誤地隨內(nèi)容寬度增長而增長。浮動(dòng)層錯(cuò)位問題在IE6下沒有真正讓人滿意的解決方法,雖然可以使用overflow:hidden;或overflow:scroll;來修正, 但hidden容易導(dǎo)致其他一些問題,scroll會(huì)破壞設(shè)計(jì);JavaScript也沒法很好地解決這個(gè)問題。所以建議是一定要在布局上避免這個(gè)問題發(fā) 生,使用一個(gè)固定的布局或者控制好內(nèi)容的寬度(給內(nèi)層加width)。

29.躲貓貓bug在IE6和IE7下,躲貓貓bug是一個(gè)非常惱人的問題。一個(gè)撐破了容器的浮動(dòng)元素,如果在他之后有不浮動(dòng)的內(nèi)容,并且有一些定義了:hover的鏈接,當(dāng)鼠標(biāo)移到那些鏈接上時(shí),在IE6下就會(huì)觸發(fā)躲貓貓。解決方法很簡單:1.在(那個(gè)未浮動(dòng)的)內(nèi)容之后添加一個(gè)2.觸發(fā)包含了這些鏈接的容器的hasLayout,一個(gè)簡單的方法就是給其定義height:1%;

30.絕對(duì)定位元素的1像素間距bugIE6下的這個(gè)錯(cuò)誤是由于進(jìn)位處理誤差造成(IE7已修復(fù)),當(dāng)絕對(duì)定位元素的父元素高或?qū)挒槠鏀?shù)時(shí),bottom和right會(huì)產(chǎn)生錯(cuò)誤。唯一的解決辦法就是給父元素定義明確的高寬值,但對(duì)于液態(tài)布局沒有完美的解決方法。

31.3像素間距bug在IE6中,當(dāng)文本(或無浮動(dòng)元素)跟在一個(gè)浮動(dòng)的元素之后,文本和這個(gè)浮動(dòng)元素之間會(huì)多出3像素的間隔。給浮動(dòng)層添加 display:inline 和 -3px 負(fù)值margin給中間的內(nèi)容層定義 margin-right 以糾正-3px

32.IE下z-index的bug在IE瀏覽器中,定位元素的z-index層級(jí)是相對(duì)于各自的父級(jí)容器,所以會(huì)導(dǎo)致z-index出現(xiàn)錯(cuò)誤的表現(xiàn)。解決方法是給其父級(jí)元素定義z-index,有些情況下還需要定義position:relative。

33.Overflow Bug在IE6/7中,overflow無法正確的隱藏有相對(duì)定位position:relative;的子元素。解決方法就是給外包容器.wrap加上position:relative;。

34.橫向列表寬度bug如果你使用float:left;把

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,814評(píng)論 1 92
  • 測試IE6及IE6+推薦:良心總結(jié) IE8中input[button|submit]不能用margin:0 aut...
    Miss____Du閱讀 963評(píng)論 0 9
  • 1、IE6怪異解析之padding與border算入寬高 原因:未加文檔聲明造成非盒模型解析 解決方法:加入文檔聲...
    Mx勇閱讀 366評(píng)論 0 7
  • 斷斷續(xù)續(xù)的在開發(fā)過程中收集了好多的bug以及其解決的辦法,都在這個(gè)文章里面記錄下來了!希望以后解決類似問題的時(shí)候能...
    卡卡西哥哥閱讀 605評(píng)論 0 1
  • 一:在制作一個(gè)Web應(yīng)用或Web站點(diǎn)的過程中,你是如何考慮他的UI、安全性、高性能、SEO、可維護(hù)性以及技術(shù)因素的...
    Arno_z閱讀 1,232評(píng)論 0 1