新聞中心
10年前,只有最尖端的網(wǎng)站設(shè)計師會為網(wǎng)頁的布局和修飾使用CSS。那時的瀏覽器對CSS進(jìn)行布局的支持即不完善又漏洞百出,所以這些人在堅持WEB標(biāo)準(zhǔn)化的同時,也不得不采用hacks來使得他們的頁面在所有瀏覽器中都能正常顯示。其中一個被使用的越來越多的hack技術(shù)是瀏覽器嗅探(browser sniffing),使用Javascript里的navigator.userAgent屬性來判斷用戶使用的是什么品牌哪個版本的瀏覽器。瀏覽器嗅探技術(shù)可以快捷的將代碼進(jìn)行分支,以便針對不同的瀏覽器應(yīng)用不同的指令。

推薦專題:HTML 5 下一代Web開發(fā)標(biāo)準(zhǔn)詳解
今天,以CSS為基礎(chǔ)進(jìn)行的布局已經(jīng)非常普遍,瀏覽器們對它的支持也非常的堅實。但是現(xiàn)在CSS3和HTML5來了,歷史轉(zhuǎn)了個圈又回到了原地——各個瀏覽器對這些新技術(shù)的支持又開始變得參差不齊了。我們早都習(xí)慣了書寫整潔的符合標(biāo)準(zhǔn)的代碼,也不會再使用CSS hacks或者瀏覽器嗅探這些不靠譜又低級的技術(shù)。我們也相信越來越多的用戶會認(rèn)同網(wǎng)站不必在所有瀏覽器里都看起來一樣的理念。那面對當(dāng)下這個熟悉的情形(瀏覽器支持的不同),我們該怎么做呢?簡單:使用特征檢測(feature detection),這意味著我們不必通過問瀏覽器“你是誰?”來做出不靠譜的推測。取而代之,我們問瀏覽器“你能做這個或那個嗎”。這么來檢測瀏覽器的能力是很簡便的,但一個個的花時間去手工測試依然令人厭煩。此時Modernizr可以幫助我們。
Modernizr:專為HTML5和CSS3開發(fā)的功能檢測類庫
Modernizr是一個開源的JS庫,它使得那些基于訪客瀏覽器的不同(指對新標(biāo)準(zhǔn)支持性的差異)而開發(fā)不同級別體驗的設(shè)計師的工作變得更為簡單。它使得設(shè)計師可以在支持HTML5和CSS3的瀏覽器中充分利用HTML5和CSS3的特性進(jìn)行開發(fā),同時又不會犧牲其他不支持這些新技術(shù)的瀏覽器的控制。
當(dāng)你在網(wǎng)頁中嵌入Modernizr的腳本時,它會檢測當(dāng)前瀏覽器是否支持CSS3的特性,比如 @font-face、border-radius、 border-image、box-shadow、rgba() 等,同時也會檢測是否支持HTML5的特性——比如audio、video、本地儲存、和新的 標(biāo)簽的類型和屬性等。在獲取到這些信息的基礎(chǔ)上,你可以在那些支持這些功能的瀏覽器上使用它們,來決定是否創(chuàng)建一個基于JS的fallback,或者對那些不支持的瀏覽器進(jìn)行簡單的優(yōu)雅降級。另外,Modernizr還可以令I(lǐng)E支持對HTML5的元素應(yīng)用CSS樣式,這樣開發(fā)者就可以立即使用這些更富有語義化的標(biāo)簽了。
Modernizr是基于漸進(jìn)增強理論來開發(fā)的,所以它支持并鼓勵開發(fā)者一層一層的創(chuàng)建他們的網(wǎng)站。一切從一個應(yīng)用了Javascript的空閑地基開始,一個接一個的添加增強的應(yīng)用層。因為使用了Modernizr,所以你容易知道瀏覽器都支持什么。下面我們來看一個通過應(yīng)用Modernizr來創(chuàng)建尖端網(wǎng)站的實例。
從應(yīng)用Modernizr開始
首先從www.modernizr.com下載Modernizr的最新的穩(wěn)定版(目前國內(nèi)封了Modernizr的官網(wǎng),我們可以從github上下載。或者更簡單點,可以從堂主這里下載最新的1.7版的腳本文件),在官網(wǎng)上你還可以看到它支持檢測的所有特性的清單(本文末位會給出這些清單,以便翻不了墻的童鞋可以知道都支持哪些)。下載完最新版本以后(作者寫這篇文章的時候用的是1.5版),把它加入頁面的區(qū)域:
- >
My Beautiful Sample Page title>


咨詢
建站咨詢