雖然后來微軟對瀏覽器進(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="ie6"lang="en"><![endif]-->
<!--[ifIE7]><htmlclass="ie7"lang="en"><![endif]-->
<!--[ifIE8]><htmlclass="ie8"lang="en"><![endif]-->
<!--[ifIE9]><htmlclass="ie9"lang="en"><![endif]-->
<!--[if(gtIE9)|!(IE)]><!--><htmllang="en"><!--<![endif]-->
這個(gè)代碼片段不需要或等待JavaScript,而且也不需要重量級的JavaScript庫。你定義的styles類立即生效,還沒有閃屏。
盡管InternetExplorer正在迎頭趕上競爭對手,但事實(shí)上老的IE瀏覽器仍然比較流行,特別是在發(fā)展中國家。好消息是,這些資源在所有現(xiàn)代瀏覽器上運(yùn)行良好,代價(jià)也并不高!
更多信息請查看IT技術(shù)專欄