如何閱讀 HTML 5 規(guī)格文檔

? ? ? ? ?HTML5是HTML最新的修訂版本,2014年10月由萬(wàn)維網(wǎng)聯(lián)盟 (W3C)完成標(biāo)準(zhǔn)制定。 目標(biāo)是取代1999年所制定的HTML 4.01和XHTML 1.0標(biāo)準(zhǔn),以期能在網(wǎng)際網(wǎng)路應(yīng)用迅速發(fā)展的時(shí)候,使網(wǎng)路標(biāo)準(zhǔn)達(dá)到符合當(dāng)代的網(wǎng)路需求。 廣義論及HTML5時(shí),實(shí)際指的是包括HTML、 CSS和JavaScript在內(nèi)的一套技術(shù)組合。 它希望能夠減少網(wǎng)頁(yè)瀏覽器對(duì)于需要外掛程式的豐富性網(wǎng)路應(yīng)用服務(wù) (Plug-in-Based Rich Internet Application, RIA ),例如: Adobe Flash 、 Microsoft Silverlight與Oracle JavaFX的需求,并且提供更多能有效加強(qiáng)網(wǎng)路應(yīng)用的標(biāo)準(zhǔn)集。

? ? ? ? Web上的所有技術(shù)的規(guī)格都由萬(wàn)維網(wǎng)聯(lián)盟(W3C)負(fù)責(zé)管理。作為一名前端工程師的您,可能訪問(wèn)過(guò)該聯(lián)盟的網(wǎng)站[w3.org](https://www.w3.org/TR/html5/)來(lái)尋找HTML5的某個(gè)問(wèn)題的答案?;蛘咴趃oogle搜索HTML specs找到規(guī)范的文檔途徑。

? ? ? ? 就這樣,您接觸到了規(guī)格,但幾乎立刻被嚇得落荒而逃。您一定會(huì)得,“什么嘛,這完全不是給人讀的?!睂?shí)際上,它是給人讀的,前提是您預(yù)先了解一些關(guān)鍵信息。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"圣經(jīng)寫出來(lái)不是為了給人讀,而是為了給人解的。 "

? ? ? ? 如果您想要尋找某個(gè)問(wèn)題的答案,實(shí)際上就是在尋找的是一本用戶手冊(cè),或一篇用戶指南;換言之,您想要了解的是該技術(shù)的用法。然而,這卻并不符合W3C規(guī)格的創(chuàng)作意圖。所謂“規(guī)格”,它意在告知負(fù)責(zé)實(shí)現(xiàn)該技術(shù)的程序員,有哪些特性是必須提供的,以及它們應(yīng)該如何實(shí)現(xiàn)。

? ? ? ? ?維修手冊(cè)在語(yǔ)言風(fēng)格上注重精確性,這一點(diǎn)和語(yǔ)調(diào)輕松、行文隨意的談話作品相當(dāng)不同。同樣地,W3C規(guī)格的語(yǔ)言風(fēng)格也一絲不茍。以下是一些您在閱讀規(guī)格時(shí)會(huì)常常遇到的字詞。


規(guī)范性

如果您看到“本節(jié)是規(guī)范性的(normative)”,則指出該節(jié)的內(nèi)容會(huì)指定實(shí)現(xiàn)者應(yīng)該遵循的細(xì)節(jié)。而提示性(informative)章節(jié)則不然,它們通常是一些示例和解釋。

用戶代理

這個(gè)有點(diǎn)兒故弄玄虛的術(shù)語(yǔ),意思其實(shí)是指這樣的程序:用戶需要憑借它才能和某項(xiàng)技術(shù)打上交道。對(duì)于HTML而言,它的用戶代理就是瀏覽器。對(duì)于可縮放矢量圖形而言,它的用戶代理可能是一個(gè)查看器,如[Batik](http://xml.apache.org/batik/);又或是一個(gè)插件,如[Adobe?SVG?Viewer](http://www.adobe.com/svg/)。

RFC

Request?For?Comment的縮寫,意思是該文檔代表某個(gè)互聯(lián)網(wǎng)標(biāo)準(zhǔn)(草案)。

助動(dòng)詞

如果某個(gè)規(guī)格中寫道,它遵循[RFC2119](http://www.ietf.org/rfc/rfc2119.txt)?,那么接下來(lái)文中出現(xiàn)的特定助動(dòng)詞就會(huì)帶有正式的對(duì)應(yīng)含義。?必須(must)的意義是:某定義是絕對(duì)要求的;?絕不(must?not)的意義是:某定義是絕對(duì)禁止的;?應(yīng)該(should)的意義是:某個(gè)特性可以實(shí)現(xiàn)也可以不實(shí)現(xiàn),但如果不實(shí)現(xiàn)的話,最好有個(gè)很好的理由;?不應(yīng)該(should?not)的意義是:如果確實(shí)需要在實(shí)現(xiàn)里包括某個(gè)特性,則最好有個(gè)很好的理由。


親愛(ài)的Martha阿姨:謝謝您那本講大象的書。它告訴我關(guān)于大象的知識(shí),比我想知道的還要多。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 一個(gè)孩子的感謝信

? ? ? ? 如果您發(fā)現(xiàn)自己在讀的文字沒(méi)有明顯的標(biāo)記,只有大量的冗詞,讀起來(lái)既像法律術(shù)語(yǔ),又像是計(jì)算機(jī)科學(xué)講座,或兩者兼似的話,也許僅僅粗粗看一眼就夠了。

? ? ? ? 另一方面,有時(shí)您卻應(yīng)該放慢閱讀速度。當(dāng)您看到一張示意圖時(shí),請(qǐng)看看它的題注和標(biāo)注。這些通常都會(huì)指向重要信息。當(dāng)您看到一節(jié)中包含有一個(gè)或數(shù)個(gè)示例時(shí),請(qǐng)放慢速度,仔細(xì)閱讀。

? ? ? ? BNF是Backus Naur Form或Backus Normal Form的縮寫。它是一種用來(lái)表示計(jì)算機(jī)語(yǔ)言語(yǔ)法的緊湊形式,它實(shí)際上無(wú)處不在。不同的規(guī)格使用不同風(fēng)格的BNF,但它們的共同之處是都把大段的自然語(yǔ)言描述變換成了符號(hào)形式。下面是一個(gè)說(shuō)明了三明治成分的例子:

? ? ? ? 三明治由以下成分構(gòu)成:一塊面包下切片,還有芥茉或蛋黃醬;生菜可放可不放;西紅柿切片可放可不放;二至四塊紅腸、臘腸或火腿以任意方式組合的切片;一塊或多塊芝士切片;還有一塊面包上切片。

其變換形式為:

三明治 ::= 面包下切片 [ 芥茉 | 蛋黃醬 ] 生菜? 西紅柿? [紅腸 | 臘腸 | 火腿 ] {2,4} 芝士+ 面包上切片

?定義的各成分按順序列出,以空格分隔。各項(xiàng)目以方括號(hào)分組,組內(nèi)選擇以豎線分隔。

? ? ? ? 如果項(xiàng)目后面跟著一個(gè)問(wèn)號(hào),意思是“一個(gè)或沒(méi)有”;如果后面跟著一個(gè)加號(hào),意思是“一個(gè)或多個(gè)”;如果后面跟著一個(gè)星號(hào),意思是“零個(gè)或多個(gè)”;如果后面跟著一個(gè)里面有數(shù)字的花括號(hào),數(shù)字就代表著項(xiàng)目允許出現(xiàn)次數(shù)的上下限。

? ? ? ? 小括號(hào),或更多的方括號(hào),用來(lái)給更復(fù)雜的定義中的項(xiàng)目分組。有時(shí)候,也會(huì)用尖括號(hào)括起某項(xiàng)目表示這是一個(gè)通用項(xiàng)目(如“顏色”),或用引號(hào)括起某項(xiàng)目表示這是一個(gè)守恒項(xiàng)目。


更多的閱讀細(xì)則待以后做更詳細(xì)的歸納總結(jié):

小結(jié):

1. 建立明確的意識(shí):規(guī)格是寫給實(shí)現(xiàn)者,而非最終用戶看的;

2. 許多規(guī)格都包含一個(gè)專門章節(jié),以說(shuō)明其組織方式,以及應(yīng)該如何閱讀;

3. 熟知規(guī)格專用詞匯;

4. 務(wù)請(qǐng)記住,您不必閱讀逐字閱讀規(guī)格。學(xué)會(huì)跳讀,集中閱讀有意義的部分;

5. 跳過(guò)名字空間相關(guān)討論章節(jié);

6. 學(xué)習(xí)閱讀BNF,很多地方都在使用它;

7. 學(xué)會(huì)閱讀DTD,并從中找到語(yǔ)法問(wèn)題的答案;

8. 如果某項(xiàng)技術(shù)涉及可編程腳本,該信息就包含在綁定中。

只要耐心有加、堅(jiān)持不懈,您一定會(huì)為從W3C規(guī)格中獲取的海量信息而感到驚喜。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,039評(píng)論 25 709
  • 問(wèn)答題47 /72 常見(jiàn)瀏覽器兼容性問(wèn)題與解決方案? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 14,152評(píng)論 1 92
  • 從百度文庫(kù)下載下來(lái)的,這里保存一份 別人的原代碼程序員怎樣閱讀 源碼就是指編寫的最原始程序的代碼。 運(yùn)行的軟件是要...
    Albert陳凱閱讀 3,477評(píng)論 0 15
  • 本文轉(zhuǎn)自自:http://blog.csdn.net/riven_wn/article/details/52912...
    王璽__boy閱讀 621評(píng)論 0 0
  • 今天,起得晚了,醒來(lái)時(shí)已經(jīng)9點(diǎn)45分了,我完全沒(méi)聽(tīng)到鬧鐘。 一上午在辦公室好像也沒(méi)做什么,反而有些焦慮。 早上看到...
    凡了閱讀 516評(píng)論 0 8

友情鏈接更多精彩內(nèi)容