九步輕松解決IE6的各種疑難雜癥
你在使用IE6的過程中是否經(jīng)常遇到這樣或者那樣的問題,這里和大家分享一下IE6中遇到問題的解決方法,相信本文介紹一定會讓你有所收獲。
九步教你解決IE6的各種疑難雜癥
剿殺IE6的戰(zhàn)斗仍在繼續(xù),一家重量級公司的加入為這場戰(zhàn)斗增加了決勝的砝碼,Google宣布,從2010年3月1日起,GoogleDocs和GoogleSites將不再支持IE6。如今,宣布不支持IE6的公司已經(jīng)構(gòu)成了一份長長的名單,然而,IE6是真的那么輕易被剿滅嗎?我們唯一能做的是用一些手段減輕IE6帶來的痛苦。
1.使用文檔類型
盡量使用最嚴(yán)格的文檔類型,確保你的頁面運(yùn)行于標(biāo)準(zhǔn)模式下。雖然用了它們,你可能不能用許多標(biāo)簽,如b,s,font等,但它們都可以用CSS來代替。
或者最簡單的,這是HTML5唯一認(rèn)可的文檔類型,瀏覽器會自動轉(zhuǎn)換為上面那個。也不要用xhtml的文檔聲明了,它原本想搞到html成為過渡的產(chǎn)品,殊不知自己才是匆匆的過客。而且用了它,元素的nodeName可能會區(qū)分大小寫,非常麻煩。
2.使用position:relative
在布局中,永遠(yuǎn)是先考慮定位布局然后才到浮動布局。IE的浮動模型令人狂抓。
3.使用display:inline
如果你一定要使用浮動,那請?jiān)诤竺娓odisplay:inline。因?yàn)镮E6存在一個很容易發(fā)生的bug。只要對塊狀容器元素設(shè)置了float和與float相同方向的margin值就會出現(xiàn)。如我們給div元素設(shè)置了float:left和margin-left:100px,在IE6中就會變成margin-left:200px。
4.請不要使用注釋節(jié)點(diǎn)
這里涉及兩個可惡性的東西。一個是多余字符bug,可以參考本博客園的楊正祎(阿一)大大的這篇文章《歌劇院魅影bug》。第二個是IE全系列的查找API的bug,document.all,document.getElementsByTagName與document.querySelectorAll都有可能返回注釋節(jié)點(diǎn)。
5.懸浮效果記得使用帶有href屬性的a元素套嵌
在IE:hover只對a標(biāo)簽有效,而且這標(biāo)簽一定顯式設(shè)置了href屬性。
6.樣式設(shè)置中不要使用百分比
IE在計(jì)算百分比時存在問題。
7.讓元素獲取hasLayout
詳情請自行g(shù)oogle百度這一篇偉大的學(xué)術(shù)研究《Onhavinglayout》。我們可以用el.currentStyle.hasLayout來檢測它是否獲得layout,一個獲得layout的萬能方法是zoom:1。
8.嚴(yán)格遵守(x)html的套嵌規(guī)則
套嵌規(guī)則是定義在文檔類型中,文檔是按照它來解析的,雖然現(xiàn)在的瀏覽器都很醒目,但為了防止它們發(fā)神經(jīng),還是小心為妙。另,雖然對于某些元素會自動閉合,我們還是自己閉合吧,養(yǎng)成個好習(xí)慣是非常重要的。
9.提高你的javascrip水平
IE6許多東西都不支持或支持不好,但我們幾乎都可以用javascript來模擬,如各種關(guān)系偽類,子元素過濾偽類,屬性偽類,目標(biāo)偽類,min-width與max-width,PNG的透明問題……
【編輯推薦】
- hover在IE6下的問題及解決方法
- 探究IE8與IE7具體功能中窗口功能按鈕的變化
- IE6 IE7 IE8三個版本的CSS兼容速查手冊
- IE6下使用CSS定義DIV高度行之有效的辦法
- 技術(shù)前沿 一段JS代碼輕松解決IE6-IE8的兼容性問題