HTML文件

製作萬維網頁面的標準語言

超文本標記語言或超文本鏈接標示語言(標準通用標記語言下的一個應用)HTML(HyperTextMark-upLanguage)是一種製作萬維網頁面的標準語言,是萬維網瀏覽器使用的一種語言,它消除了不同計算機之間信息交流的障礙。

HTML元素是構建網站的基石。HTML允許嵌入圖像與對象,並且可以用於創建互動式表單,它被用來結構化信息——例如標題、段落和列表等等,也可用來在一定程度上描述文檔的外觀和語義。HTML的語言形式為尖括弧包圍的HTML元素(如),瀏覽器使用HTML標籤和腳本來詮釋網頁內容,但不會將它們顯示在頁面上。

HTML可以嵌入如JavaScript腳本語言,它們會影響HTML網頁的行為。網頁瀏覽器也可以引用層疊樣式表(CSS)來定義文本和其它元素的外觀與布局。維護HTML和CSS標準的組織萬維網聯盟W3C)鼓勵人們使用CSS替代一些用於表現的HTML元素。

基本含義


HTML文件是可以被多種網頁瀏覽器讀取,產生網頁傳遞各類資訊的文件。從本質上來說,Internet(網際網路)是一個由一系列傳輸協議和各類文檔所組成的集合,html文件只是其中的一種。這些HTML文件存儲在分佈於世界各地的伺服器硬碟上,通過傳輸協議用戶可以遠程獲取這些文件所傳達的資訊和信息。
網路瀏覽器,例如NetscapeNavigator或MicrosoftInternetexplorer,能夠解釋HTML文件來顯示網頁,這是網路瀏覽器的主要作用。當你使用瀏覽器在網際網路上瀏覽網頁時,瀏覽器軟體就自動完成HTML文件到網頁的轉換。
優點:打開速度快,操作簡單,無需下載其他閱讀器。
缺點:改變格式,無法直接引用,界面不友好,閱讀不方便。

事例


來查看一個HTML文件的例子。打開你喜愛的網路瀏覽器,在瀏覽器的地址輸入框內敲入相關網址,進入ActiveServerPages的網點(你的計算機應該已連上了Internet)。當在屏幕上顯示了此網頁后,從網路瀏覽器的菜單條上選擇ViewSource命令。此時屏幕上就會彈出一個新的窗口並顯示一些古怪的文字。你所看到的這些文字就是HTML文件。

歷史


發展
1980年,物理學家蒂姆·伯納斯-李在歐洲核子研究中心(CERN)在承包工程期間,為使CERN的研究人員使用並共享文檔,他提出並創建原型系統ENQUIRE。1989年,伯納斯-李在一份備忘錄中提出一個基於網際網路的超文本系統。他規定HTML並在1990年底寫出瀏覽器和伺服器軟體。同年,伯納斯-李與CERN的數據系統工程師羅伯特·卡里奧聯合為項目申請資助,但未被CERN正式批准。在他的個人筆記中伯納斯-李列舉“一些使用超文本的領域”,並把百科全書列為首位。
HTML的首個公開描述出現於一個名為“HTML標籤”的文件中,由蒂姆·伯納斯-李於1991年底提及。它描述18個元素,包括HTML初始的、相對簡單的設計。除了超鏈接標籤外,其他設計都深受CERN內部一個以標準通用標記語言(SGML)為基礎的文件格式SGMLguid的影響。這些元素在HTML4中仍有11個存在。
伯納斯-李認為HTML是SGML的一個應用程序。1993年中期網際網路工程任務組(IETF)發布首個HTML規範的提案:“超文本標記語言(HTML)”網際網路草案,由伯納斯-李與丹·康納利撰寫。其中包括一個SGML文檔類型定義來定義語法。草案於6個月後過期,不過值得注意的是其對NCSAMosaic瀏覽器自定義標籤從而將在線圖像嵌入的行為的認可,這反映IETF把標準立足於成功原型的理念。同樣,戴夫·拉格特在1993年末提出的與之競爭的網際網路草案“HTML+(超文本標記格式)”建議規範已經實現的功能,如表格與填寫表單。
在HTML和HTML+的草案於1994年初到期后,IETF創建一個HTML工作組,並在1995年完成"HTML2.0",這是第一個旨在成為對其後續實現標準的依據的HTML規範。
在IETF的主持下,HTML標準的進一步發展因競爭利益而遭受停滯。自1996年起,HTML規範一直由萬維網聯盟(W3C)維護,並由商業軟體廠商出資。不過在2000年,HTML也成為國際標準(ISO/IEC15445:2000)。HTML4.01於1999年末發布,進一步的勘誤版本於2001年發布。2004年,網頁超文本應用技術工作小組(WHATWG)開始開發HTML5,並在2008年與W3C共同交付,2014年10月28日完成標準化。
版本時間線
● 1995年11月24日
● HTML2.0作為IETFRFC1866發布。追加RFC的附加功能:
● 1995年11月25日:RFC1867(基於表單的文件上傳)
● 1996年5月:RFC1942(表格)
● 1996年8月:RFC1980(客戶端圖像映射)
● 1997年1月:RFC2070(國際化)
● 1997年1月14日
● HTML3.2作為W3C推薦標準發布。這是首個完全由W3C開發並標準化的版本,因IETF於1996年9月12日關閉它的HTML工作組。
● 最初代號為“威爾伯”(Wilbur),HTML3.2完全去除數學公式,協調各種專有擴展,並採用網景設計的大多數視覺標記標籤。由於兩家公司達成了協議,網景的閃爍元素和微軟的滾動元素被移除。HTML對數學公式的支持最後成為另外一種被稱為MathML的標準。
● 1997年12月18日
● HTML4.0作為W3C推薦標準發布。它提供三種變化:
● 嚴格,過時的元素被禁止。
● 過渡,過時的元素被允許。
● 框架集,大多隻與框架相關的元素被允許。
● ● 最初代號“美洲獅”(Cougar),HTML4.0採用許多特定瀏覽器的元素類型和屬性,並試圖淘汰網景的視覺標記功能,將其標記為不贊成使用。HTML4是遵循ISO8879-SGML的SGML應用程序。
● ● 1998年4月24日
● ● HTML4.0進行微調,不增加版本號。
● ● 1999年12月24日
● ● HTML4.01作為W3C推薦標準發布。它同樣提供三種變化,最終勘誤版於2001年5月12日發布。
● ● 2000年5月
● ● ISO/IEC15445:2000("ISOHTML",基於HTML4.01嚴格版)作為ISO/IEC國際標準發布。在ISO中這一標準位於ISO/IECJTC1/SC34域(ISO/IEC聯合技術委員會1、小組委員會34–文檔描述與處理語言)。
● ● 2014年10月28日
● ● HTML5作為W3C推薦標準發布。
草案時間線
● 1991年10月
● HTML標籤,一個非正式CERN文件首次公開18個HTML標籤。
● 1992年6月
● HTMLDTD的首個非正式草案,後續有七個修訂版(7月15日,8月6日,8月18日,11月17日,11月19日,11月20日,11月22日)。
● 1992年11月
● HTMLDTD1.1(首個版本號,基於RCS修訂版,版本號從1.1開始而非1.0),非正式草案。
● 1993年6月
● 超文本標記語言由IETFIIIR工作小組作為網際網路草案(一個粗略的建議標準)。在被第二版取代一個月後,IETF又發布6個草案,最終在RFC1866中發布HTML2.0。
● 1993年11月
● HTML+由IETF作為網際網路草案發布,是超文本標記語言草案的一個競爭性提案。它於1994年5月到期。
● 1995年4月(1995年3月編寫)
● HTML3.0被提議作為IETF的標準,但直到提案在五個月過期后(1995年9月28日)仍沒有進一步的行動。它包含許多拉格特HTML+提案的功能,如對錶格的支持、圍繞數據的文本流和複雜的數學公式的顯示。W3C開始開發自己的Arena瀏覽器作為HTML3和層疊樣式表的試驗台,但HTML3.0並沒有獲得成功。瀏覽器廠商,包括微軟和網景,選擇實現HTML3草案功能的不同子集並引入它們自己的插件(見瀏覽器大戰)。
● 2008年1月
● HTML5由W3C作為工作草案(鏈接)發布。雖然HTML5的語法非常類似於SGML,但它已經放棄任何成為SGML應用程序的嘗試,除了一種替代的基於XML的HTML5序列,它已明確定義自己的“HTML”序列。
● 2011年HTML5–最終徵求
● 2011年5月,工作小組將HTML5推進至“最終徵求”(LastCall)階段,邀請W3C社區內外人士以確認本規範的技術可靠性。W3C開發一套綜合性測試包來實現完整規範的廣泛交互操作性,完整規範的目標日期為2014年。2011年1月,WHATWG將其“HTML5”活動標準重命名為“HTML”。W3C仍然繼續其發布HTML5的項目。
● 2012年HTML5–候選推薦
● 2012年7月,WHATWG和W3C的工作產生一定程度的分離。W3C繼續HTML5規範工作,重點放在單一明確的標準上,這被WHATWG稱為“快照”。WHATWG組織則將HTML5作為一個“活動標準”(LivingStandard)。活動標準的概念是從未完成但永遠保持更新與改進,可以蒂姆加新特性,但功能點不會被刪除。
● 2012年12月,W3C指定HTML5作為候選推薦階段。該階段的標準為“兩個100%完成,完全實現交互操作”。
● 2014年HTML5–提案推薦與推薦
● 2014年9月,HTML5進入提案推薦階段。
● 2014年10月28日,HTML5作為穩定W3C推薦標準發布,這意味著HTML5的標準化已經完成。
XHTML版本
主條目:XHTML
XHTML是使用XML1.0改寫自HTML4.01的獨立語言。它不再被作為單獨標準開發。
● XHTML1.0,2000年1月26日作為W3C推薦標準發布。修訂版於2002年8月1日發布,它提供與HTML4.0和4.01相同的三個變化,這些變化被重新在XML中制定。
● XHTML1.1,基於XHTML1.0嚴格版,2001年5月31日作為W3C推薦標準發布。修訂版可使用模塊化XHTML的模塊,2001年4月10日作為W3C推薦標準發布。
● XHTML2.0為工作草案,但為支持HTML5與XHTML5的工作,此草案被放棄。XHTML2.0與XHTML1.x不兼容,因此更確切的說這是一個XHTML風格的新語言而不是XHTML1.x的更新。
● 在HTML5草案中規定一個XHTML語法,稱為“XHTML5.1”。

標記


HTML標記包含標籤(及其屬性)、基於字元的數據類型、字元引用和實體引用等幾個關鍵部分。HTML標籤是最常見的,通常成對出現,比如

。這些成對出現的標籤中,第一個標籤是開始標籤,第二個標籤是結束標籤。兩個標籤之間為元素的內容,有些標籤沒有內容,為空元素,如
HTML另一個重要組成部分為文檔類型聲明,這會觸發標準模式渲染。
以下是一個經典的HelloWorld程序的例子:
1
2
3
4
5
6
7
8
9
1
2
3
4Thisisatitle
5
6
7
Helloworld!
8
9
元素
主條目:HTML元素
HTML文檔由嵌套的HTML元素構成。它們用HTML標籤表示,包含於尖括弧中,如
在一般情況下,一個元素由一對標籤表示:“開始標籤”
與“結束標籤”
。元素如果含有文本內容,就被放置在這些標籤之間。
在開始與結束標籤之間也可以封裝另外的標籤,包括標籤與文本的混合。這些嵌套元素是父元素的子元素。
開始標籤也可包含標籤屬性。這些屬性有諸如標識文檔區塊、將樣式信息綁定到文檔演示和為一些如等的標籤嵌入圖像、引用圖像來源等作用。
一些元素如換行符
,不允許嵌入任何內容,無論是文字或其他標籤。這些元素只需一個單一的空標籤(類似於一個開始標籤),無需結束標籤。
許多標籤是可選的,尤其是那些很常用的段落元素
的閉合端標籤。HTML瀏覽器或其他介質可以從上下文識別出元素的閉合端以及由HTML標準所定義的結構規則。這些規則非常複雜,不是大多數HTML編碼人員可以完全理解的。
因此,一個HTML元素的一般形式為:''content''。一些HTML元素被定義為空元素,其形式為。空元素不能封裝任何內容。例如
標籤或內聯標籤。一個HTML元素的名稱即為標籤使用的名稱。注意,結束標籤的名稱前面有一個斜杠“/”,空元素不需要也不允許結束標籤。如果元素屬性未標明,則使用其默認值。
主條目:HTML屬性
大多數元素的屬性以“名稱-值”的形式成對出現,由“=”分離並寫在開始標籤元素名之後。值一般由單引號或雙引號包圍,有些值的內容包含特定字元,在HTML中可以去掉引號(XHTML不行)。不加引號的屬性值被認為是不安全的。有些屬性無需成對出現,僅存在於開始標籤中即可影響元素,如img元素的ismap屬性。
許多元素存在一些共通的屬性:
● id屬性為元素提供了在全文檔內的唯一標識。它用於識別元素,以便樣式表可以改變其表現屬性,腳本可以改變、顯示或刪除其內容或格式化。對於蒂姆加到頁面的URL,它為元素提供了一個全局唯一標識,通常為頁面的子章節。例如,ID"屬性"對於https://zh.wikipedia.org/wiki/HTML#屬性
● class屬性提供一種將類似元素分類的方式。常被用於語義化或格式化。例如,一個HTML文檔可指定類來表明所有具有這一類值的元素都從屬於文檔的主文本。格式化后,這樣的元素可能會聚集在一起,並作為頁面腳註而不會出現在HTML代碼中。類屬性也被用於微格式的語義化。類值也可進行多聲明。如將元素同時放入標記與重要兩類中。
● style屬性可以將表現性質賦予一個特定元素。比起使用id或class屬性從樣式表中選擇元素,“style”被認為是一個更好的做法,儘管有時這對一個簡單、專用或特別的樣式顯得太繁瑣。
● title屬性用於給元素一個附加的說明。大多數瀏覽器中這一屬性顯示為工具提示。
lang屬性用於識別元素內容的語言,它可能與文檔的主要語言不同。例如,在中文文檔中:
● 法語c'estlavie在法國的應用很普遍,意為“這就是生活”。
縮寫元素abbr可用於說明一些屬性:
1HTML
這個例子顯示為HTML;在大多數瀏覽器中,游標指向縮寫時會顯示標題文字“超文本標記語言”。
大多數元素採用與語言相關的屬性dir來指定文字方向,如"rtl"採用從右到左的文本,比如阿拉伯語、波斯語以及希伯來語
字元與實體引用
參見:XML與HTML字元實體引用列表和Unicode與HTML
在4.0版本中,HTML定義了一系列共252個字元實體引用和1,114,050個字元值參考。二者都支持單個字元通過簡單的標記寫入。文字字元與其對應的標記渲染的效果相同。
用這種方式“轉義”字元的能力允許字元<與&(當分別被寫作<和&時)被理解為字元數據而不是標記。例如<通常為標籤的開頭,&通常為字元實體引用與數字字元引用的開頭;&或&或&將&作為元素的內容或屬性的值。雙引號字元"在不被用於屬性值的標示時必須轉義為"或"或";相等地,當於單引號字元'不被用於屬性值的標示時,也必須轉義為'或'(或HTML5與XHTML文檔中的')。
如果文檔作者忽略了轉義這樣的字元,一些瀏覽器會嘗試通過上下文猜測他們的意圖。如果結果仍為無效標記,這會使其他瀏覽器或用戶代理難以訪問到該文檔,並使它們嘗試使用搜索和索引來解析該文檔。
那些難以輸入或不在該文檔字元編碼中的字元也可通過轉義來實現。例如通常只在西歐或南美的鍵盤出現的重音符e(é),可以在HTML文檔中用作實體引用é或數字引用é或é。諸如UTF-8的Unicode字元編碼與所有的現代瀏覽器兼容並允許直接訪問全球書寫系統幾乎所有的字元。
數據類型
HTML為元素內容定義了多種數據類型,如腳本數據、樣式表數據以及許多屬性值的類型,包括ID、名稱、URI、數字長度單位、語言、媒體描述符顏色、字元編碼、日期和時間等等。所有這些數據類型都是字元數據的特殊化。
文檔類型聲明
HTML文檔需要以文檔類型聲明(英語非正式說法“doctype”)開頭。在瀏覽器中,文檔類型聲明有助於確定渲染模式——特別是是否使用怪異模式。
文檔類型聲明的初衷是通過基於文檔類型定義(DTD)的SGML工具來解析並驗證HTML文檔。
HTML5未定義DTD,所以在HTML5中文檔類型聲明更為簡短:
1
HTML4文檔類型聲明舉例:
1
該聲明引用HTML4.01“嚴格”版的DTD。基於SGML的驗證器可讀取DTD,正確解析這些文檔並執行驗證。在現代瀏覽器中,一個有效的文檔類型激活標準模式有別於怪異模式。
另外,HTML4.01提供過渡型與框架集型的DTD。過渡型涵蓋最廣,它可集成當前以及老舊或“過時”的標籤,而嚴格型DTD排除了過時的標籤。框架集擁有所有構建框架所需的標籤以及過渡型的標籤。

語義化


主條目:語義化HTML
語義化HTML是一種編寫HTML的方式,它強調編碼信息的含義在其格式(樣子)之上。HTML從創立之初就包括語義化標記,但也包括標識性標記如
標籤。也存在一些語義上中立的span與div標籤。自1990年代末CSS開始應用於大多數瀏覽器,網頁製作者就被鼓勵使用CSS以便呈現與內容分離。
在2001年一次對語義網的討論中,蒂姆·伯納斯-李等人給出了一種的方法,使智能軟體“代理人”可能有一天會自動抓取網頁進行查找、過濾並將之前不相關的聯繫起來。這種代理甚至在現在也不普遍,但一些Web2.0、混搭和價格比較網站的想法可能會結束。這些網頁應用程序的混合與伯納斯-李的語義代理人的之間主要區別基於以下事實:當前的聚合與信息混合通常由網頁開發者設計,他們早已知道網路位置和他們希望混搭、比較與結合的特定數據的API語義。
網頁代理的一個重要類型是網路爬蟲或搜索引擎蜘蛛。這些軟體代理依賴於它們發現的網頁的語義清晰度,因為它們一天要使用各種技術與演演算法來讀取和索引數百萬個網頁並給網頁用戶提供搜索工具,沒有這些萬維網的有效性就會大大降低。
為使搜索引擎蜘蛛評估它們在HTML文檔中發現的文本片段的重要性,也為那些創建標記等混合的人與更多的自動化代理工具,HTML中的語義結構需要廣泛一致地應用從而將文本的含義呈現給瀏覽者。
表示性標記在當前的HTML和XHTML推薦中不被鼓勵使用。舊版本HTML中的大多數表示功能不再被允許使用,因為它們導致可訪問性變差、站點維護成本變高和文檔大小變大。
好的語義化HTML也改善了網頁文檔的可訪問性(參見網頁內容無障礙指南)。例如,當屏幕閱讀器或音頻瀏覽器可以正確判定一個文檔的結構時,視覺障礙用戶不會再因閱讀重複或無關的信息而浪費時間。

分發


HTML文檔分發的方法和其他計算機文件相同。不過,它們最常通過網頁伺服器的超文本傳輸協議或電子郵件傳輸。
萬維網主要由從伺服器通過HTTP協議向瀏覽器發送的HTML文檔組成。但是,HTTP也可以被用於傳輸HTML之外的數據,例如圖像、聲音和其他內容。為使瀏覽器了解如何處理接收到的文檔,在傳輸文檔時必須同時傳遞文件類型。這種元數據包含MIME類型(對於HTML4.01或更早版本是text/html,而對於XHTML1.0或之後的版本是application/xhtml+xml),以及字元編碼(參見HTML字元編碼方式)。
在現在的瀏覽器中,和HTML文檔一起發送的MIME類型影響文檔的解讀方式。和XHTMLMIME類型一起發送的文檔被認為是良構的XML,而語法錯誤會導致瀏覽器無法呈現文檔。完全相同的文檔如果和HTMLMIME類型一起發送,則可能被正常顯示,因為瀏覽器對HTML的語法檢查更加鬆懈些。
W3C的推薦指出,遵循規定的推薦指引的XHTML1.0文檔可標記二者任一的MIME類型。XHTML1.1還指出,XHTML1.1文檔應標有兩種MIME類型。
  • 目錄