HTML


HTML (简体)

一段用彩色標示的HTML源代碼
一段用彩色標示的HTML原始碼

超文件標示語言英文HyperText Markup Language,簡稱為HTML)是為網頁創建和其它可在網頁瀏覽器中看到的信息設計的一種標示語言。HTML被用來結構化信息——例如標題、段落和列表等等,也可用來在一定程度上描述文檔的外觀和語義。由蒂姆·伯納斯-李給出原始定義,由IETF用簡化的SGML(標準通用標示語言)語法進行進一步發展的HTML後來成為國際標準,由全球資訊網聯盟W3C)維護。

包含HTML內容的文件最常用的擴展名是.html,但是像DOS這樣的舊作業系統限制擴展名為最多3個字元,所以.htm擴展名也被使用。雖然現在使用的比較少一些了,但是.htm擴展名仍舊普遍被支持。編者可以用任何文本編輯器所見即所得HTML編輯器來編輯HTML文件。

早期的HTML語法被定義成較鬆散的規則,以有助於不熟悉網路出版的人採用。網頁瀏覽器接受了這個現實,並且可以顯示語法不嚴格的網頁。隨著時間的流逝,官方標準漸漸趨於嚴格的語法,但是瀏覽器繼續顯示一些遠稱不上合乎標準的HTML。使用XML的嚴格規則的XHTML(可擴展超文件標示語言)是W3C計劃中的HTML的接替者。雖然很多人認為它已經成為當前的HTML標準,但是它實際上是一個獨立的、和HTML平行發展的標準。W3C目前的建議是使用XHTML 1.1、 XHTML 1.0或者HTML 4.01進行網路出版。

目錄

發展歷史

1982 年,Tim Berners-Lee 為使世界各地的物理學家能夠方便的進行合作研究,建立了使用於其系統的 HTML。Tim Berners-Lee 設計的 HTML 以純文字格式為基礎,可以任何文字編輯器處理,最初僅有少量標記(TAG)而易於掌握運用。隨著 HTML 使用率的增加,人們不滿足只能看到文字。1993 年,還是大學生的 Marc Andreessen 在他的 Mosaic 瀏覽器加入 <img> 標記,從此可以在 Web 頁面上瀏覽圖片。但人們認為僅有圖片還是不夠,希望可將任何形式的媒體加到網頁上。因此 HTML 不斷地擴充和發展。

標準的版本歷史

HTML

HTML沒有1.0版本是因為當時有很多不同的版本。有些人認為蒂姆·伯納斯-李的版本應該算初版,這個版本沒有IMG元素。當時被稱為HTML+的後續版的開發工作于1993年開始,最初是被設計成為「HTML的一個超集」。第一個正式規範在為了和當時的各種HTML標準區分開來,使用了2.0作為其版本號。HTML+的發展繼續下去,但是它從未成為標準。

HTML3.0規範是由當時剛成立的W3C于1995年3月提出,提供了很多新的特性,例如表格、文字繞排和複雜數學元素的顯示。雖然它是被設計用來兼容2.0版本的,但是實現這個標準的工作在當時過於複雜,在草案于1995年9月過期時,標準開發也因為缺乏瀏覽器支持而中止了。3.1版從未被正式提出,而下一個被提出的版本是開發代號為Wilbur的HTML 3.2,去掉了大部分3.0中的新特性,但是加入了很多特定瀏覽器,例如NetscapeMosaic的元素和屬性。HTML對數學公式的支持最後成為另外一個標準MathML

HTML 4.0同樣也加入了很多特定瀏覽器的元素和屬性,但是同時也開始「清理」這個標準,把一些元素和屬性標記為過時的,建議不再使用它們。HTML的未來和CSS結合會更好。

HTML 5目前仍為草案,並已被W3C接納。

XHTML

主條目:XHTML

標記元素類型

以下是HTML元素的類型:

  • 結構性 標記,描述文字的意圖,例如
<h2>Golf</h2>
指明瀏覽器將"Golf"顯示為二級標題。結構性標記並未指示瀏覽器的顯示方式,但是大多數瀏覽器標準化了這些元素的顯示,例如默認情況下上述的標題會被顯示為較大的粗體文字。參見層疊樣式表 (CSS)。比較常用的結構性標記有:
    • html元素 標記HTML內容的開始和結束。
    • head元素 標記HTML文件頭,包含不在正文中顯示的關鍵字、標題、腳本等等。
      • title元素 標記HTML文件的標題。
    • body元素 標記HTML文件正文的開始和結束。
  • 呈現性標記。描述文字的外觀,例如
<b>boldface</b>
將"boldface"顯示為粗體文字。但是為了統一網站的風格,很多網路出版者使用CSS而不是重複使用呈現性標記。對於<b>bold</b><i>italic</i>,也有通常更加明確的等價呈現性標記,例如<strong>strong emphasis</strong><em>emphasis</em>
  • 超文件標記。將文檔的一部分關聯到其他文檔。例如
<a href="http://wikipedia.org/">Wikipedia</a>
將會把Wikipedia顯示為一個超連結URL
  • 除了HTML內容之外,經常也有人在代碼中加入註釋:
<!-- This is a comment -->
註釋不被瀏覽器解釋,僅僅起到說明代碼含義或者隱藏部分代碼的作用。
  • 框架頁面標記。描述網頁如何顯示框架網頁,較低版本的瀏覽器並不支援此功能。
<frameset> </frameset>
代表定義一個框架。若在後加上rows="100,*",這代表網頁會開啟一個上下分割網頁的框架,而上框架網頁的高度是100px。. 加上cols="100,*"代表網頁左右分割,左框架的網頁闊度是100px。
<framename="left" src="left.html" />
代表框架頁的名稱及檔案來源。這個語法是加在</frameset>前。

每個標記都有特定的屬性。由於對標準的支持度相差很大,一些標記和屬性可能只被部分瀏覽器支持。

文件類型描述

為了指明文檔使用的HTML標準,所有HTML文檔應該以文件類型聲明(DOCTYPE)開頭,引用一個文件類型描述。舉例來說:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
                      "http://www.w3.org/TR/html4/strict.dtd">

這個聲明斷言文檔服從HTML 4.01的嚴格文件類型描述,這個標準是嚴格結構化的,使用CSS來做格式化。有時是否存在一個合適的文件類型描述會影響一個瀏覽器顯示網頁的方式。

除了HTML 4.01的嚴格文件類型描述之外,HTML 4.01也提供過渡和框架集文件類型描述。過渡文件類型描述是向嚴格的文件類型描述過渡的緩衝,而框架集文件類型描述則針對包含框架元素的網頁。

分離樣式和內容

網路開發社區的努力導致一種新的網頁編寫潮流,XHTML就是一個典型。標準著重於描述網頁結構的元素,例如標題、段落、引言和表格,而不是那些用於呈現的元素,例如<font>、 <b> (粗體)和<i> (斜體)。在一些HTML變體中這些元素甚至被禁用,例如HTML 4.01 的嚴格版本。CSS提供了一種分離HTML結構和內容呈現的方式:把所有呈現代碼移到單獨的CSS文件。

使用HTTP發布HTML

全球資訊網主要由從伺服器通過HTTP協議向瀏覽器發送的HTML文檔組成。但是,HTTP也可以被用於傳輸HTML之外的數據,例如圖像、聲音和其他內容。為使瀏覽器了解如何處理接收到的文檔,在傳輸文檔時必須同時傳遞文件類型。這種元數據包含MIME類型(對於HTML 4.01或更早版本是text/html,而對於XHTML 1.0或之後的版本是application/xhtml+xml),以及字元編碼(參見HTML字元編碼方式)。

在現在的瀏覽器中,和HTML文檔一起發送的MIME類型影響文檔的解讀方式。和XHTML MIME類型一起發送的文檔被認為是良構的XML,而語法錯誤會導致瀏覽器無法呈現文檔。完全相同的文檔如果和HTML MIME類型一起發送,則可能被正常顯示,因為瀏覽器對HTML的語法檢查更加鬆懈些。

如果MIME類型不被識別為HTML,那麼瀏覽器不應該試圖將文檔呈現為HTML,即使文檔以正確的文檔類型聲明開頭也是這樣;儘管如此,一些瀏覽器還是檢查文檔內容或其URL來判斷其文件類型。因為可能造成的安全性問題,這種行為不被提倡。即使以不遵守標準著稱的Internet Explorer也基本放棄了這種做法。

HTML格式的電子郵件

一些圖形模式下的電子郵件客戶端支持HTML格式的郵件。很多支持一個圖形模式下的HTML郵件編輯器,以及一個HTML郵件閱覽器。因為一些問題,HTML郵件的使用有爭議。HTML郵件的主要優點是可以使用呈現性元素來加強郵件的視覺效果,但是缺陷也很多,例如

  • 收件人未必有一個可以瀏覽HTML郵件的客戶端
  • 郵件大小增加。一些郵件客戶端隨HTML郵件發送一個純文字版更加重了這個問題
  • 過度使用格式化
  • 潛在安全問題,例如偽造銀行電子郵件用於網路釣魚
  • 在一些有缺陷的電子郵件程序顯示HTML郵件時可能執行惡意代碼

因為這些原因,很多新聞群組郵件列表要麼截斷信件的HTML部分,要麼只接受純文本版本部分的郵件,要麼拒絕接收HTML郵件。

HTML超文件格式

HTML是一個相對比較弱的超文件實現。早期超文件系統具有具有類型的連結、跨越包含和來源跟蹤這樣的屬性。另一個現在缺乏支持的特性是粗鏈路。

直到不久之前,一些早期HTML版本中的超文件特性一直被大多數瀏覽器忽略,例如link元素和可編輯的網頁。

有時網路服務或者瀏覽器廠商也認識到這些特性。例如,現在的wiki和nuke社會網路軟體允許瀏覽者編輯訪問的網頁。

參看

外部連結


! __







Why are we here?
All text is available under the terms of the GNU Free Documentation License
This page is cache of Wikipedia. History