雖然后來微軟對瀏覽器進(jìn)行了大量的研發(fā),但事實(shí)是現(xiàn)代ie瀏覽器在大多數(shù)時(shí)候比基于webkit的瀏覽器以及火狐要落后一些。我們也還需要適配早期版本的ie。下面的方法會(huì)讓你的網(wǎng)站更快,甚至在微軟旗艦瀏覽器上奇跡般地運(yùn)行得更好!
htmlshiv.js
remy的html5shiv通過javascript來創(chuàng)建html5元素(如main,header,footer等).在某種程度上通過javascript創(chuàng)建的元素是styleable(可樣式)的。我們可以花很多時(shí)間來思考其運(yùn)行原理,但誰會(huì)在乎呢?這種策略在所有產(chǎn)品網(wǎng)站上仍然是必須使用的.
代碼如下:
<!--[ifltie9]>
<scriptsrc=dist/html5shiv.js></script>
<![endif]-->
selectivizr.js
selectivizr.js是一個(gè)不可思議的資源,用于填充不支持的css選擇器和屬性,包括重要的last-child。在最近的重設(shè)計(jì)中,我嵌入了selectivizr,并在更老的ie瀏覽器上也不會(huì)錯(cuò)過任何細(xì)節(jié)。下面是我的實(shí)現(xiàn)代碼:
代碼如下:
<!--[iflteie8]><scriptsrc=js/libs/selectivizr.js></script><![endif]-->
現(xiàn)代項(xiàng)目絕對必須的。只在老ie時(shí)才加載
<html>conditionalcomments
下面這樣最土的情況你肯定看到過。但無論丑陋與否,事實(shí)上這段代碼完全按預(yù)期的方式運(yùn)行:
代碼如下:
<!doctypehtml>
<!--[ifltie7]><htmlclass=ie6lang=en><![endif]-->
<!--[ifie7]><htmlclass=ie7lang=en><![endif]-->
<!--[ifie8]><htmlclass=ie8lang=en><![endif]-->
<!--[ifie9]><htmlclass=ie9lang=en><![endif]-->
<!--[if(gtie9)|!(ie)]><!--><htmllang=en><!--<![endif]-->
這個(gè)代碼片段不需要或等待javascript,而且也不需要重量級的javascript庫。你定義的styles類立即生效,還沒有閃屏。
盡管internetexplorer正在迎頭趕上競爭對手,但事實(shí)上老的ie瀏覽器仍然比較流行,特別是在發(fā)展中國家。好消息是,這些資源在所有現(xiàn)代瀏覽器上運(yùn)行良好,代價(jià)也并不高!