九步輕松解決IE6的各種疑難雜癥
本文向大家描述一下如何解決IE6的各種疑難雜癥,主要從九個(gè)方面來向大家介紹,希望對(duì)你的學(xué)習(xí)有所幫助。
九步教你解決IE6的各種疑難雜癥
1.使用文檔類型
盡量使用最嚴(yán)格的文檔類型,確保你的頁面運(yùn)行于標(biāo)準(zhǔn)模式下。雖然用了它們,你可能不能用許多標(biāo)簽,如b,s,font等,但它們都可以用CSS來代替。
或者最簡單的,這是HTML5***認(rèn)可的文檔類型,瀏覽器會(huì)自動(dòng)轉(zhuǎn)換為上面那個(gè)。也不要用xhtml的文檔聲明了,它原本想搞到html成為過渡的產(chǎn)品,殊不知自己才是匆匆的過客。而且用了它,元素的nodeName可能會(huì)區(qū)分大小寫,非常麻煩。
2.使用position:relative
在布局中,永遠(yuǎn)是先考慮定位布局然后才到浮動(dòng)布局。IE的浮動(dòng)模型令人狂抓。
3.使用display:inline
如果你一定要使用浮動(dòng),那請(qǐng)?jiān)诤竺娓odisplay:inline。因?yàn)镮E6存在一個(gè)很容易發(fā)生的bug。只要對(duì)塊狀容器元素設(shè)置了float和與float相同方向的margin值就會(huì)出現(xiàn)。如我們給div元素設(shè)置了float:left和margin-left:100px,在IE6中就會(huì)變成margin-left:200px。
4.請(qǐng)不要使用注釋節(jié)點(diǎn)
這里涉及兩個(gè)可惡性的東西。一個(gè)是多余字符bug,可以參考本博客園的楊正祎(阿一)大大的這篇文章《歌劇院魅影bug》。第二個(gè)是IE全系列的查找API的bug,document.all,document.getElementsByTagName與document.querySelectorAll都有可能返回注釋節(jié)點(diǎn)。
5.懸浮效果記得使用帶有href屬性的a元素套嵌
在IE:hover只對(duì)a標(biāo)簽有效,而且這標(biāo)簽一定顯式設(shè)置了href屬性。
6.樣式設(shè)置中不要使用百分比
IE在計(jì)算百分比時(shí)存在問題。
7.讓元素獲取hasLayout
詳情請(qǐng)自行g(shù)oogle百度這一篇偉大的學(xué)術(shù)研究《Onhavinglayout》。我們可以用el.currentStyle.hasLayout來檢測(cè)它是否獲得layout,一個(gè)獲得layout的***方法是zoom:1。
8.嚴(yán)格遵守(x)html的套嵌規(guī)則
套嵌規(guī)則是定義在文檔類型中,文檔是按照它來解析的,雖然現(xiàn)在的瀏覽器都很醒目,但為了防止它們發(fā)神經(jīng),還是小心為妙。另,雖然對(duì)于某些元素會(huì)自動(dòng)閉合,我們還是自己閉合吧,養(yǎng)成個(gè)好習(xí)慣是非常重要的。
9.提高你的javascrip水平
IE6許多東西都不支持或支持不好,但我們幾乎都可以用javascript來模擬,如各種關(guān)系偽類,子元素過濾偽類,屬性偽類,目標(biāo)偽類,min-width與max-width,PNG的透明問題……
【編輯推薦】
- IE6不支持的五大CSS選擇符
- IE6.0對(duì)padding的解讀分析
- IE6雙倍margin間距解決方法
- CSS overflow溢出屬性
- CSS中cellspacing和cellpadding屬性用法揭秘