中文字幕二区_国产精品免费在线观看_黄色网站观看_人人草人人澡_日本真实娇小xxxx

您的位置: 首頁 > 技術(shù)文檔 > 網(wǎng)頁制作 > HTML5設(shè)計原理
介紹27款經(jīng)典的CSS框架 回到列表 圖文居中顯示的實用方法
 HTML5設(shè)計原理

作者:李松峰 時間: 2011-03-01 文檔類型:轉(zhuǎn)載 來自:

第 1 頁 HTML5設(shè)計原理 [1]
第 2 頁 HTML5設(shè)計原理 [2]
第 3 頁 HTML5設(shè)計原理 [3]
第 4 頁 HTML5設(shè)計原理 [4]
第 5 頁 HTML5設(shè)計原理 [5]
第 6 頁 HTML5設(shè)計原理 [6]
第 7 頁 HTML5設(shè)計原理 [7]
第 8 頁 HTML5設(shè)計原理 [8]
第 9 頁 HTML5設(shè)計原理 [9]
第 10 頁 HTML5設(shè)計原理 [10]

避免不必要的復(fù)雜性

下面我就給大家介紹一些這份文檔中記載的設(shè)計原理。第一個,非常簡單:避免不必要的復(fù)雜性。好像很簡單吧。我用一個例子來說明。

假設(shè)我使用HTML 4.01規(guī)范,我打開文檔,輸入doctype。這里有人記得HTML 4.01的doctype嗎?好,沒有,我猜沒有。除非……我的意思是說,你是傻冒,F(xiàn)場恐怕真有人背過,這就是HTML 4.01的doctype:

<!DOCTYPE html PUBLIC "-//W3C/DTD HTML 4.01//EN" 
"

我不記這個兩行代碼,不然還要記事本、要Google、要模板有什么用呢?

要是我使用XHTML 1.0呢,這個規(guī)范我都已經(jīng)用了10年了。有誰記得住這個doctype嗎?沒錯,它的長度跟HTML 4.01的差不太多:

 <!DOCTYPE html PUBLIC "-//W3C/DTD XHTML 1.0 Strict//EN"  
 "

是不是,基本上相同。它要告訴瀏覽器的是:這個文檔是XHTML 1.0的文檔。那么在HTML 5中,省掉不必要的復(fù)雜性,doctype就簡化成了:

<!DOCTYPE html>

僅此而已。好了,就連我也能過目不忘了。我用不著把這幾個字符記在記事本里了。我得說,在我第一次看到這個doctype的時候——我當(dāng)然以為這是一個HTML文檔的doctype——被它嚇了一跳:“是不是還少一個數(shù)字5。俊蔽倚睦锵耄骸斑@個doctype想告訴瀏覽器什么呢?就說這個文檔是HTML嗎?難道這是有史以來唯一一個HTML版本嗎,這件事我得首先搞清楚,HTML今后永遠(yuǎn)不會再有新版本了嗎?”好一副唯我獨尊的架式!我錯了,因為這個doctype并沒有這個意思。為此,必須先搞清楚為什么文檔一開頭就要寫doctype。它不是寫給瀏覽器看的。Doctype是寫給驗證器看的。也就是說,我之所以要在文檔一開頭寫那行XHTML 1.0的doctype,是為了告訴驗證器,讓驗證器按照該doctype來驗證我的文檔。

瀏覽器反倒無所謂了。假設(shè)我寫的是HTML 3.2文檔,文檔開頭寫的是HTML 3.2的doctype。而在文檔中某個地方,我使用了HTML 4.01中才出現(xiàn)的一個元素。瀏覽器會怎么處理這種情況?它會因為這個元素出現(xiàn)在比doctype聲明的HTML版本更晚的規(guī)范中,就不解釋呈現(xiàn)該元素嗎?不會,當(dāng)然不會!它照樣會解釋呈現(xiàn)該元素,別忘了伯斯塔爾法則,別忘了健壯性。瀏覽器在接收的時候必須要開放。因此,它不會檢查任何格式類型,而驗證器會,驗證器才關(guān)心格式類型。這才是存在doctype的真正原因。

而按照HTML5的另一個設(shè)計原理,它必須向前向后兼容,兼容未來的HTML版本——不管是HTML6、HTML7,還是其他什么——都要與當(dāng)前的HTML版本,HTML5,兼容。因此,把一個版本號放在doctype里面沒有多大的意義,即使對驗器證也一樣。

剛才,我說doctype不是為瀏覽器寫的,這樣說大多數(shù)情況下沒有問題。在有一種情況下,你使用的doctype會影響到瀏覽器,相信在座諸位也都知道。但在這種情況下,Doctype并非真正用得其所,而只是為了達(dá)到某種特殊的目的才使用doctype。當(dāng)初微軟在引入CSS的時候,走在了標(biāo)準(zhǔn)的前頭,他們率先在瀏覽器中支持CSS,也推出了自己的盒模型——后來標(biāo)準(zhǔn)發(fā)布了,但標(biāo)準(zhǔn)中使用了不一樣的盒模型。他們怎么辦?他們想支持標(biāo)準(zhǔn),但也想向后兼容自己過去推出的編碼方式。他們怎么知道網(wǎng)頁作者想使用標(biāo)準(zhǔn),還是想使用他們過去的方式?

于是,他們想出了一個非常巧妙的主意。那就是利用doctype,利用有效的doctype來觸發(fā)標(biāo)準(zhǔn)模式,而不是兼容模型(quiks mode)。這個主意非常巧妙。我們今天也都是這樣在做,在我們向文檔中加入doctype時,就相當(dāng)于聲明了“我想使用標(biāo)準(zhǔn)模式”,但這并不是發(fā)明doctype的本意。這只是為了達(dá)到特殊的目的在利用doctype。

下面我出一道有獎?chuàng)尨痤},聽好:“一分鐘后開始,如果你手快的話,第一個在文檔前面寫完doctype html,然后我用Internet Explorer打開你的文檔,會觸發(fā)它的標(biāo)準(zhǔn)模式,還是會觸發(fā)它的兼容模式?”

答案是,這是在Internet Explorer中觸發(fā)標(biāo)準(zhǔn)模式的最少字符數(shù)目。我認(rèn)為這也說明了HTML5規(guī)范的本質(zhì):它不追求理論上的完美。HTML5所體現(xiàn)的不是“噢,給作者一個簡短好記的doctype不好嗎?”,沒錯,簡短好記是很好,但如果這個好記的doctype無法適應(yīng)現(xiàn)有的瀏覽器,還不如把它忘了更好。因此,這個平衡把握得非常好,不僅理論上看是個好主意——簡短好記的doctype,而且實踐中同樣也是個好主意——仍然可以觸發(fā)標(biāo)準(zhǔn)模式。應(yīng)該說,Doctype是一個非常典型的例子。

還有一個例子,同樣可以說明規(guī)范是如何省略不必要的復(fù)雜性,避免不必要的復(fù)雜性的。如果前面的文檔使用的是HTML 4.01,假設(shè)我要指定文檔的字符編碼。理想的方式,是通過服務(wù)器在頭部信息中發(fā)送字符編碼,不過也可以在文檔這個級別上指定:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

同樣,我也不會把這行代碼背下來。我還想省下自己的腦細(xì)胞去記點別的更有價值的東西呢。不過,如果我想指定文檔使用UTF-8編碼,只能添加這行代碼。這是在HTML 4.01中需要這樣做。要是你在XHTML 1.0指定同樣的編碼,就得多敲一下鍵盤,因為你還得聲明meta元素位于一個開始的XML標(biāo)簽中。

<?xml version="1.0" encoding="UTF-8" ?> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

在HTML5中,你要敲的字符只有:

<meta charset="utf-8">

簡短好記。我能背下來。

同樣,這樣寫也是有效的。它不僅適用于最新版本的瀏覽器,只要是今天還有人在用的瀏覽器都同樣有效。為什么?因為在我們把這些meta元素輸入瀏覽器時,瀏覽器會這樣解釋它:“元數(shù)據(jù)(meta)點點點點點,字符集(charset)utf-8。”這就是瀏覽器在解釋那行字符串時真正看到的內(nèi)容。它必須看到這些內(nèi)容,根據(jù)就是伯斯塔爾法則,對不對?

我多次提到健壯性原理,但總有人不理解。我們換一種說法,瀏覽器會想“好,我覺得作者是想要指定一個字符集……看,沒錯,utf-8。”這些都是規(guī)范里明文規(guī)定的。如今,不僅那個斜杠可以省了,而且總共只要寫meta charset=”utf-8″就行了。

關(guān)于省略不必要的復(fù)雜性,或者說避免不必要的復(fù)雜性的例子還有不少。但關(guān)鍵是既能避免不必要的復(fù)雜性,還不會妨礙在現(xiàn)有瀏覽器中使用。比如說,在HTML5中,如果我使用link元素鏈接到一個樣式表,我說了rel=”stylesheet”,然后再說type=”text/css”,那就是重復(fù)自己了。對瀏覽器而言,我就是在重復(fù)自己。瀏覽器用不著同時看到這兩個屬性。瀏覽器只要看到rel=”stylesheet”就夠了,因為它可以猜出來你要鏈接的是一個CSS樣式表。所以就不用再指定type屬性了。你不是已經(jīng)說了這是一個樣式表了嘛;不用再說第二次了。當(dāng)然,愿意的話,你可以再說;如果你想包含type屬性,請便。

同樣地,如果你使用了script元素,你說type=”text/javascript”,瀏覽器差不多就知道是怎么回事了。對Web開發(fā)而言,你還使用其他的腳本語言嗎?如果你真想用其他腳本語言,沒人會阻攔你。但我要奉勸你一句,任何瀏覽器都不會支持你。

愿意的話,你可以添加一個type屬性。不過,也可以什么都不寫,瀏覽器自然會假設(shè)你在使用JavaScript。避免-不必要的-復(fù)雜性。

出處:
責(zé)任編輯:bluehearts

上一頁 HTML5設(shè)計原理 [4] 下一頁 HTML5設(shè)計原理 [6]

◎進(jìn)入論壇網(wǎng)頁制作、WEB標(biāo)準(zhǔn)化版塊參加討論,我還想發(fā)表評論。

相關(guān)文章 更多相關(guān)鏈接
div、section、article 的區(qū)別
《HTML5設(shè)計原理》讀后隨記
22個HTML5的初級技巧
HTML5 WebSockets基礎(chǔ)使用教程
使用HTML5制作網(wǎng)頁
關(guān)鍵字搜索 常規(guī)搜索 推薦文檔
熱門搜索:CSS Fireworks 設(shè)計比賽 網(wǎng)頁制作 web標(biāo)準(zhǔn) 用戶體驗 UE photoshop Dreamweaver Studio8 Flash 手繪 CG
站點最新 站點最新列表
周大!熬•自然”設(shè)計大賽開啟
國際體驗設(shè)計大會7月將在京舉行
中國國防科技信息中心標(biāo)志征集
云計算如何讓安全問題可控
云計算是多數(shù)企業(yè)唯一擁抱互聯(lián)網(wǎng)的機(jī)會
阿里行云
云手機(jī)年終巨獻(xiàn),送禮標(biāo)配299起
阿里巴巴CTO王堅的"云和互聯(lián)網(wǎng)觀"
1499元買真八核 云OS雙蛋大促
首屆COCO桌面手機(jī)主題設(shè)計大賽
欄目最新 欄目最新列表
淺談JavaScript編程語言的編碼規(guī)范
如何在illustrator中繪制臺歷
Ps簡單繪制一個可愛的鉛筆圖標(biāo)
數(shù)據(jù)同步算法研究
用ps作簡單的作品展示頁面
CSS定位機(jī)制之一:普通流
25個最佳最閃亮的Eclipse開發(fā)項目
Illustrator中制作針線縫制文字效果
Photoshop制作印刷凹凸字體
VS2010中創(chuàng)建自定義SQL Rule
>> 分頁 首頁 前頁 后頁 尾頁 頁次:5/101個記錄/頁 轉(zhuǎn)到 頁 共10個記錄

藍(lán)色理想版權(quán)申明:除部分特別聲明不要轉(zhuǎn)載,或者授權(quán)我站獨家播發(fā)的文章外,大家可以自由轉(zhuǎn)載我站點的原創(chuàng)文章,但原作者和來自我站的鏈接必須保留(非我站原創(chuàng)的,按照原來自一節(jié),自行鏈接)。文章版權(quán)歸我站和作者共有。

轉(zhuǎn)載要求:轉(zhuǎn)載之圖片、文件,鏈接請不要盜鏈到本站,且不準(zhǔn)打上各自站點的水印,亦不能抹去我站點水印。

特別注意:本站所提供的攝影照片,插畫,設(shè)計作品,如需使用,請與原作者聯(lián)系,版權(quán)歸原作者所有,文章若有侵犯作者版權(quán),請與我們聯(lián)系,我們將立即刪除修改。

您的評論
用戶名:  口令:
說明:輸入正確的用戶名和密碼才能參與評論。如果您不是本站會員,你可以注冊 為本站會員。
注意:文章中的鏈接、內(nèi)容等需要修改的錯誤,請用報告錯誤,以利文檔及時修改。
不評分 1 2 3 4 5
注意:請不要在評論中含與內(nèi)容無關(guān)的廣告鏈接,違者封ID
請您注意:
·不良評論請用報告管理員,以利管理員及時刪除。
·尊重網(wǎng)上道德,遵守中華人民共和國的各項有關(guān)法律法規(guī)
·承擔(dān)一切因您的行為而直接或間接導(dǎo)致的民事或刑事法律責(zé)任
·本站評論管理人員有權(quán)保留或刪除其管轄評論中的任意內(nèi)容
·您在本站發(fā)表的作品,本站有權(quán)在網(wǎng)站內(nèi)轉(zhuǎn)載或引用
·參與本評論即表明您已經(jīng)閱讀并接受上述條款
推薦文檔 | 打印文檔 | 評論文檔 | 報告錯誤  
專業(yè)書推薦 更多內(nèi)容
網(wǎng)站可用性測試及優(yōu)化指南
《寫給大家看的色彩書1》
《跟我去香港》
眾妙之門—網(wǎng)站UI 設(shè)計之道
《Flex 4.0 RIA開發(fā)寶典》
《贏在設(shè)計》
犀利開發(fā)—jQuery內(nèi)核詳解與實踐
作品集 更多內(nèi)容

雜⑦雜⑧ Gold NORMANA V2