低版本IE正常運(yùn)行HTML5+CSS3網(wǎng)站的3種解決方案
如果開發(fā)時(shí)按最低標(biāo)準(zhǔn),比如IE6不支持的特性,我們統(tǒng)統(tǒng)不用,那就沒(méi)有必要寫這篇文章了;但我想這種情況極少,更多的開發(fā),是在現(xiàn)代瀏覽器上使用它們支持的特性,而在早期瀏覽器上做一定的降級(jí)處理,這就是所謂 “漸進(jìn)增強(qiáng)”,也是本文要說(shuō)的重點(diǎn)。通過(guò)下面的方法,希望可以讓網(wǎng)站也能夠在低版本IE瀏覽器上奇跡般地運(yùn)行得更好!
htmlshiv.js
Remy的 HTML5shiv通過(guò)JavaScript 來(lái)創(chuàng)建HTML5元素(如 main, header, footer等)。在某種程度上通過(guò)JavaScript 創(chuàng)建的元素是 styleable(可樣式)的。我們可以花很多時(shí)間來(lái)思考其運(yùn)行原理,但誰(shuí)會(huì)在乎呢?這種策略在所有產(chǎn)品網(wǎng)站上仍然是必須使用的。
Selectivizr.js 是一個(gè)不可思議的資源,用于填充不支持的CSS選擇器和屬性,包括重要的 last-child。在最近的重設(shè)計(jì)中,我嵌入了 selectivizr,并在更老的 IE 瀏覽器上也不會(huì)錯(cuò)過(guò)任何細(xì)節(jié)。下面是我的實(shí)現(xiàn)代碼:
現(xiàn)代項(xiàng)目絕對(duì)必須的。只在老版本IE時(shí)才加載。
另外,Modernizr 腳本中已經(jīng)添加 HTML5 瀏覽器支持腳本 html5shiv,我們只要引用 Moernizr.js 文件,IE9 以下的 IE 瀏覽器就支持 HTML5 添加的語(yǔ)義標(biāo)簽如 nav、section、article 等,也可以使用 CSS 對(duì)它們進(jìn)行樣式化。
條件注釋
下面這樣最土的情況你肯定看到過(guò)。但無(wú)論丑陋與否,事實(shí)上這段代碼完全按預(yù)期的方式運(yùn)行:
<!--[if lt IE 7 ]> <html class="ie6" lang="en"> <![endif]-->
<!--[if IE 7 ]> <html class="ie7" lang="en"> <![endif]-->
<!--[if IE 8 ]> <html class="ie8" lang="en"> <![endif]-->
<!--[if IE 9 ]> <html class="ie9" lang="en"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html lang="en"> <!--<![endif]-->
上面的方法是作用于css,來(lái)寫一些針對(duì)IE各版本的樣式差異。先判斷用戶用的哪個(gè)IE版本,然后在標(biāo)簽上加上該版本的class,這樣可以方便hack。
然后我們?cè)赾ss文件中就可以這樣寫:
.ie6 xxx {};
.ie7 xxx {};
這是目前小編認(rèn)為效率最高的方法,這個(gè)方法不需要或等待JavaScript,而且也不需要重量級(jí)的JavaScript庫(kù)。你定義的styles類立即生效,還沒(méi)有閃屏。
盡管IE瀏覽器正在迎頭趕上競(jìng)爭(zhēng)對(duì)手,新版本IE也有非常大的變化,并希望借助全新的IE重塑網(wǎng)絡(luò)體驗(yàn)。但在國(guó)內(nèi)舊版IE仍然是比較流行。好消息是,這些資源在所有現(xiàn)代瀏覽器上運(yùn)行良好,代價(jià)也并不高!
- 基于jQuery的讓非HTML5瀏覽器支持placeholder屬性的代碼
- jQuery(非HTML5)可編輯表格實(shí)現(xiàn)代碼
- 使用jquery讀取html5 localstorage的值的方法
- html5的自定義data-*屬性和jquery的data()方法的使用示例
- css3元素簡(jiǎn)單的閃爍效果實(shí)現(xiàn)(html5 jquery)
- jQuery中使用data()方法讀取HTML5自定義屬性data-*實(shí)例
- jquery操作HTML5 的data-*的用法實(shí)例分享
- CSS3,HTML5和jQuery搜索框集錦
- 2014 HTML5/CSS3熱門動(dòng)畫特效TOP10
相關(guān)文章
不通過(guò)JavaScript實(shí)現(xiàn)的自動(dòng)滾動(dòng)視差效果
這篇文章介紹了一種通過(guò)CSS3實(shí)現(xiàn)的視差(Parallax)效果,這個(gè)效果通過(guò)在一個(gè)元素上疊加多個(gè)背景圖片,并使用-webkit- transition-屬性來(lái)實(shí)現(xiàn)。2009-04-04xhtml+css網(wǎng)頁(yè)制作中常見問(wèn)題解決方法
xhtml+css頁(yè)面制作過(guò)程中問(wèn)題的解決方案,說(shuō)是解決方案應(yīng)該有點(diǎn)過(guò)了,充其量只不過(guò)是給剛剛開始學(xué)標(biāo)準(zhǔn)頁(yè)面制作的朋友們的一些小建議,如果講得不對(duì)的地方請(qǐng)多多包涵,當(dāng)然也可以提出你們更好的方法,大家相互學(xué)習(xí)交流,共同成長(zhǎng)!2008-10-10讓網(wǎng)頁(yè)框架透明 底部對(duì)齊的代碼
2008-01-01鼠標(biāo)滑過(guò)縮略圖時(shí)放大圖片(純Css)
2008-02-02