HTML

用於創建網頁的標準標記語言

超文件標示語言(英語:HyperText Markup Language,簡稱:HTML)是一種用於建立網頁的標準標示語言。HTML是一種基礎技術,常與CSSJavaScript一起被眾多網站用於設計網頁、網頁應用程式以及流動應用程式的用戶介面[3]網頁瀏覽器可以讀取HTML檔案,並將其渲染成視覺化網頁。HTML描述了一個網站的結構語意隨着線索的呈現,使之成為一種標示語言而非程式語言

HTML
(超文件標示語言)
副檔名
  • .html
  • .htm
網路媒體型式
text/html
類型代碼英語Type codeTEXT
開發者W3C & WHATWG
首次發佈1993年,​31年前​(1993
最新版本
5.2[1]/ 5.3(工作草案)[2]
2017年12月14日,​6年前​(2017-12-14
格式類型文件檔案格式
延伸自SGML
延伸為XHTML
標準
免費格式?
網站

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

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

歷史

 
W3C製作的早期HTML標誌

發展

 
添·柏納斯-李

1980年,物理學家添·柏納斯-李歐洲核子研究中心(CERN)在承包工程期間,為使CERN的研究人員使用並共享文件,他提出並建立原型系統ENQUIRE。1989年,柏納斯-李在一份備忘錄中提出一個基於互聯網超文字系統[5]。他制定HTML並在1990年底寫出瀏覽器和伺服器軟件。同年,柏納斯-李與CERN的數據系統工程師羅伯特·卡里奧聯合為專案申請資助,但未被CERN正式批准。在他的個人筆記中[6]柏納斯-李列舉「一些使用超文字的領域」,並把百科全書列為第一項[7]

HTML的首次公開描述出現於一個名為HTML Tags[8]的檔案中,由添·柏納斯-李於1991年底提及[9][10]。它描述18個元素,包括HTML初始的、相對簡單的設計。除了超連結標籤外,其他設計都深受CERN內部一個以標準通用標示語言(SGML)為基礎的檔案格式SGMLguid的影響。這些元素仍有11個存在於HTML 4中[11]

柏納斯-李認為HTML是SGML的一個應用程式。1993年中期互聯網工程任務組(IETF)發佈首個HTML規範的提案:「超文件標示語言(HTML)」互聯網草案頁面存檔備份,存於互聯網檔案館),由柏納斯-李與丹·康納利英語Dan Connolly (computer scientist)撰寫。其中包括一個SGML文件類型定義來定義語法[12]。草案於6個月後過期,不過值得注意的是其對NCSA Mosaic瀏覽器嵌入線上圖像的自訂標籤的認可,這反映IETF把標準立足於成功原型的理念[13]。同樣,戴夫·拉格特英語Dave Raggett在1993年末提出的與之競爭的互聯網草案「HTML+(超文字標記格式)」建議規範已經實現的功能,如表格與填寫表單[14]

在HTML和HTML+的草案於1994年初到期後,IETF建立一個HTML工作群組,並在1995年完成"HTML 2.0",這是第一個旨在成為對其後續實現標準的依據的HTML規範[15]

在IETF的主導下,HTML標準的進一步發展因競爭利益而遭受停滯。自1996年起,HTML規範一直由萬維網聯盟(W3C)維護,並由商業軟件廠商出資[16]。不過在2000年,HTML也成為國際標準(ISO/ IEC15445:2000)。HTML 4.01於1999年末發佈,進一步的勘誤版本於2001年發佈。2004年,網頁超文字應用技術工作小組(WHATWG)開始開發HTML5,並在2008年與W3C共同提出,2014年10月28日完成標準化[17]

版本時間線

HTML 2

1995年11月24日
HTML 2.0作為IETF RFC 1866發佈。追加RFC的附加功能:

HTML 3

1997年1月14日
HTML 3.2[18]作為W3C推薦標準發佈。這是首個完全由W3C開發並標準化的版本,因IETF於1996年9月12日關閉它的HTML工作群組[19]。最初代號為「威爾伯」(Wilbur)[20],HTML 3.2完全去除數學公式,協調各種專有擴充,並採用網景設計的大多數視覺標記標籤。由於兩家公司達成了協議,網景的Blink元素和微軟Marquee元素被移除[16]。HTML對數學公式的支援最後成為另外一種被稱為MathML的標準。

HTML 4

1997年12月18日
HTML 4.0[21]作為W3C推薦標準發佈。它提供三種變化:
  • 嚴格,過時的元素被禁止。
  • 過渡,過時的元素被允許。
  • 框架集,大多只與框架相關的元素被允許。
最初代號「美洲獅」(Cougar)[20], HTML 4.0採用許多特定瀏覽器的元素類型和屬性,並試圖淘汰網景的視覺標記功能,將其標記為不贊成使用。HTML 4是遵循ISO 8879 - SGML的SGML應用程式[22]
1998年4月24日
HTML 4.0[23]進行微調,不增加版本號。
1999年12月24日
HTML 4.01[24]作為W3C推薦標準發佈。它同樣提供三種變化,最終勘誤版頁面存檔備份,存於互聯網檔案館)於2001年5月12日發佈。
2000年5月
ISO/IEC 15445:2000[25][26]("ISO HTML",基於HTML 4.01嚴格版)作為ISO/IEC國際標準發佈。在ISO中這一標準位於ISO/IEC JTC 1/SC 34英語ISO/IEC JTC 1/SC 34域(ISO/IEC聯合技術委員會1、小組委員會34 – 文件描述與處理語言)[25]

HTML 5

2014年10月28日
HTML 5[27]作為W3C推薦標準發佈[28]

草案時間線

1991年10月
HTML標籤[9],一個非正式CERN檔案首次公開18個HTML標籤。
1992年6月
HTML DTD的首個非正式草案[29], 後續有七個修訂版[30][31][32](7月15日,8月6日,8月18日,11月17日,11月19日,11月20日,11月22日)。
1992年11月
HTML DTD 1.1(首個版本號,基於RCS修訂版,版本號從1.1開始而非1.0),非正式草案。[32]
1993年6月
超文件標示語言[33]IETF IIIR工作小組作為互聯網草案(一個粗略的建議標準)。在被第二版[34]取代一個月後,IETF又發佈6個草案[35],最終在RFC1866中發佈HTML 2.0。
1993年11月
HTML+由IETF作為互聯網草案發佈,是超文件標示語言草案的一個競爭性提案。它於1994年5月到期。
1995年4月 (1995年3月編寫)
HTML 3.0[36]被提議作為IETF的標準,但直到提案在五個月過期後(1995年9月28日)[37]仍沒有進一步的行動。它包含許多拉格特HTML+提案的功能,如對表格的支援、圍繞數據的文字流和複雜的數學公式的顯示[37]。W3C開始開發自己的Arena瀏覽器作為HTML 3和階層式樣式表的試驗台英語Test bed[38][39][40],但HTML 3.0並沒有獲得成功。瀏覽器廠商,包括微軟和網景,選擇實現HTML3草案功能的不同子集並引入它們自己的外掛程式(見瀏覽器大戰[16]
 
HTML5的Logo
2008年1月
HTML5由W3C作為工作草案(連結頁面存檔備份,存於互聯網檔案館))發佈[41]。雖然HTML5的語法非常類似於SGML,但它已經放棄任何成為SGML應用程式的嘗試,除了一種替代的基於XML的HTML5序列,它已明確定義自己的「HTML」序列[42]
2011年 HTML5 – 最終徵求
2011年5月,工作小組將HTML5推進至「最終徵求」(Last Call)階段,邀請W3C社區內外人士以確認本規範的技術可靠性。W3C開發一套綜合性測試套件來實現完整規範的廣泛互動操作性,完整規範的目標日期為2014年[43]。2011年1月,WHATWG將其「HTML5」活動標準重新命名為「HTML」。W3C仍然繼續其發佈HTML5的專案[44]
2012年 HTML5 – 候選推薦
2012年7月,WHATWG和W3C的工作產生一定程度的分離。W3C繼續HTML5規範工作,重點放在單一明確的標準上,這被WHATWG稱為「快照」。WHATWG組織則將HTML5作為一個「活動標準」(Living Standard)。活動標準的概念是從未完成但永遠保持更新與改進,可以添加新特性,但功能點不會被刪除。[45]
2012年12月,W3C指定HTML5作為候選推薦[46]階段。該階段的標準為「兩個100%完成,完全實現互動操作」。
2014年 HTML5 – 提案推薦與推薦
2014年9月,HTML5進入提案推薦階段。[47]
2014年10月28日,HTML5作為穩定W3C推薦標準發佈[48],這意味着HTML5的標準化已經完成[49]

XHTML版本

XHTML是使用XML 1.0覆寫自HTML 4.01的獨立語言。它不再被作為單獨標準開發。

  • XHTML 1.0[50], 2000年1月26日作為W3C推薦標準發佈。修訂版於2002年8月1日發佈,它提供與HTML 4.0和4.01相同的三個變化,這些變化被重新在XML中制定。
  • XHTML 1.1[51],基於XHTML 1.0 嚴格版,2001年5月31日 作為W3C推薦標準發佈。修訂版可使用模組化XHTML頁面存檔備份,存於互聯網檔案館)的模組,2001年4月10日作為W3C推薦標準發佈。
  • XHTML 2.0為工作草案,但為支援HTML5XHTML5的工作,此草案被放棄[52][53][54]。 XHTML 2.0與XHTML 1.x不相容,因此更確切的說這是一個XHTML風格的新語言而不是XHTML 1.x的更新。
  • 在HTML5草案中規定一個XHTML語法,稱為「XHTML5.1」[55]

標記

HTML標記包含標籤(及其屬性)、基於字元的資料類型、字元參照和實體參照等幾個關鍵部分。HTML標籤是最常見的,通常成對出現,比如<h1></h1>。這些成對出現的標籤中,第一個標籤是開始標籤,第二個標籤是結束標籤。兩個標籤之間為元素的內容,有些標籤沒有內容,為空元素,如<img>

HTML另一個重要組成部分為文件類型聲明英語document type declaration,這會觸發標準模式渲染。

以下是一個經典的Hello World程式的例子:

<!DOCTYPE html>
<html>
  <head>
    <title>This is a title</title>
  </head>
  <body>
    <p>Hello world!</p>
  </body>
</html>

<html></html>之間的文字描述網頁,<body></body>之間的文字為可視頁面內容。標記文字<title>This is a title</title>定義了瀏覽器的頁面標題。

文件標記類型<!DOCTYPE html>用於HTML5。 如果未進行聲明,瀏覽器會使用「怪異模式」進行渲染。[56]

元素

HTML文件由巢狀的HTML元素構成。它們用HTML標籤表示,包含於尖括號中,如<p>[57]

在一般情況下,一個元素由一對標籤表示:「開始標籤」<p>與「結束標籤」</p>。元素如果含有文字內容,就被放置在這些標籤之間。

在開始與結束標籤之間也可以封裝另外的標籤,包括標籤與文字的混合。這些巢狀元素是父元素的子元素。

開始標籤也可包含標籤屬性。這些屬性有諸如標識文件區段、將樣式資訊繫結到文件演示和為一些如<img>等的標籤嵌入圖像、參照圖像來源等作用。

一些元素如換行<br>,不允許嵌入任何內容,無論是文字或其他標籤。這些元素只需一個單一的空標籤(類似於一個開始標籤),無需結束標籤。

許多標籤是可選的,尤其是那些很常用的段落元素<p>的閉合端標籤。HTML瀏覽器或其他媒介可以從上下文辨識出元素的閉合端以及由HTML標準所定義的結構規則。這些規則非常複雜,不是大多數HTML編碼人員可以完全理解的。

因此,一個HTML元素的一般形式為:<tag attribute1="value1" attribute2="value2">''content''</tag>。一些HTML元素被定義為空元素,其形式為<tag attribute1="value1" attribute2="value2">。空元素不能封裝任何內容。例如<br>標籤或行內標籤<img>。一個HTML元素的名稱即為標籤使用的名稱。注意,結束標籤的名稱前面有一個斜槓「/」,空元素不需要也不允許結束標籤。如果元素屬性未標明,則使用其預設值。

例子

HTML文件的頁首:<head>...</head>。標題被包含在頭部,例如:

<head>
  <title>The Title</title>
</head>

標題:HTML標題由<h1><h6>六個標籤構成,字型由大到小遞減:

<h1>Heading level 1</h1>
<h2>Heading level 2</h2>
<h3>Heading level 3</h3>
<h4>Heading level 4</h4>
<h5>Heading level 5</h5>
<h6>Heading level 6</h6>

段落:

<p>第一段</p>  <p>第二段</p>

換行:<br><br><p>之間的差異是br換行但不改變頁面的語意結構,而p部分的頁面成段。

<p>這是<br>一個<br>使用換行<br>段落</p>

連結:使用<a>標籤來建立連結。href屬性包含連結的URL地址。

<a href="https://zh.wikipedia.org/">中文維基百科的連結!</a>

註釋:

<!-- This is a comment -->

註釋有助於理解標記,但它不會在網頁上顯示。

HTML中存在以下幾種類型的標記元素:

用於文字的結構式標記
例如,<h2>羽毛球</h2>將「羽毛球」定義為二級標題。結構式標記不指示任何特定的渲染,但大多數網頁瀏覽器都會採用元素格式的預設樣式。要在內容上實現進一步的風格可以使用階層式樣式表(CSS)[58]
用於文字外觀的表現式標記,不論其目的
例如,'''粗體'''表示視覺輸出裝置應將文字「粗體」加粗,但如果裝置無法做到這一點(如朗讀文字的聽覺裝置),就不會發生什麼現象。在這種情況下,'''粗體'''''斜體''也可能有相同的視覺效果,但在本質上它們更加語意化。如同'''加強文字'''''強調文字''的區別。為支援CSS的使用,大多數表現式標記在HTML 4.0規範中不再被推薦使用。
超文字標記使文件的一部分連結到其他文件
錨元素在文件中建立超連結,其href屬性設置連結的目標URL。例如:HTML標記<a href="https://zh.wikipedia.org/">中文維基百科</a>會將文字"中文維基百科頁面存檔備份,存於互聯網檔案館"渲染為超連結。要將圖片渲染為超連結,img元素要作為內容插入到a元素中:<a href="https://example.org"><img src="image.gif" alt="說明文字" width="50" height="50" border="0"></a>

屬性

大多數元素的屬性以「名稱-值」的形式成對出現,由「=」分離並寫在開始標籤元素名之後。值一般由單引號或雙引號包圍,有些值的內容包含特定字元,在HTML中可以去掉引號(XHTML不行)[59][60]。不加引號的屬性值被認為是不安全的[61]。有些屬性無需成對出現,僅存在於開始標籤中即可影響元素[9],如img 元素的ismap 屬性[62]

許多元素存在一些共通的屬性:

  • id屬性為元素提供了在全文件內的唯一標識。它用於辨識元素,以便樣式表可以改變其表現屬性,指令碼可以改變、顯示或刪除其內容或格式化。對於添加到頁面的URL,它為元素提供了一個全域唯一標識,通常為頁面的子章節。例如,ID "屬性"對於https://zh.wikipedia.org/wiki/HTML#属性
  • class屬性提供一種將類似元素分類的方式。常被用於語意化或格式化。例如,一個HTML文件可指定類<class="標記">來表明所有具有這一類值的元素都從屬於文件的主文字。格式化後,這樣的元素可能會聚集在一起,並作為頁面註腳而不會出現在HTML代碼中。類屬性也被用於微格式的語意化。類值也可進行多聲明。如<class="標記 重要">將元素同時放入標記重要兩類中。
  • style屬性可以將表現性質賦予一個特定元素。比起使用idclass 屬性從樣式表中選擇元素,「style」被認為是一個更好的做法,儘管有時這對一個簡單、專用或特別的樣式顯得太繁瑣。
  • title屬性用於給元素一個附加的說明。 大多數瀏覽器中這一屬性顯示為工具提示英語Tooltip
  • lang屬性用於辨識元素內容的語言,它可能與文件的主要語言不同。例如,在中文文件中:
    <p>法语<span lang="fr">c'est la vie</span>在法国的应用很普遍,意为“这就是生活” 。<p>
    

縮寫元素abbr可用於說明一些屬性:

<abbr id="ID" class="术语" style="color:purple;" title="超文本标记语言">HTML</abbr>

這個例子顯示為HTML; 在大多數瀏覽器中,游標指向縮寫時會顯示標題文字「超文件標示語言」。

大多數元素採用與語言相關的屬性dir 來指定文字方向,如 "rtl"採用從右到左的文字,比如阿拉伯語波斯語以及希伯來語[63]

字元與實體參照

在4.0版本中,HTML定義了一系列共252個字元實體參照和1,114,050個字元值參考。二者都支援單個字元透過簡單的標記寫入。文字字元與其對應的標記渲染的效果相同。

用這種方式「跳脫」字元的能力允許字元<&(當分別被寫作&lt;&amp;時)被理解為字元數據而不是標記。例如<通常為標籤的開頭,&通常為字元實體參照與數字字元參照的開頭;&amp;&#x26;&#38;&作為元素的內容或屬性的值。雙引號字元"在不被用於屬性值的標示時必須跳脫為&quot;&#x22;&#34;;相等地,當於單引號字元'不被用於屬性值的標示時,也必須跳脫為&#x27;&#39;(或HTML5與XHTML文件中的&apos;[64][65])。

如果文件作者忽略了跳脫這樣的字元,一些瀏覽器會嘗試透過上下文猜測他們的意圖。如果結果仍為無效標記,這會使其他瀏覽器或用戶代理難以訪問到該文件,並使它們嘗試使用搜尋和索引來解析該文件。

那些難以輸入或不在該文件字元編碼中的字元也可透過跳脫來實現。例如通常只在西歐或南美的鍵盤出現的重音符eé),可以在HTML文件中用作實體參照&eacute; 或數字參照&#xE9;&#233;。 諸如UTF-8Unicode字元編碼與所有的現代瀏覽器相容並允許直接訪問全球書寫系統幾乎所有的字元 [66]

資料類型

HTML為元素內容定義了多種資料類型,如指令碼數據、樣式表數據以及許多屬性值的類型,包括ID、名稱、URI、數字長度單位、語言、媒體描述符顏色、字元編碼、日期和時間等等。所有這些資料類型都是字元數據的特殊化。

文件類型聲明

HTML文件需要以文件類型聲明英語document type declaration(英語非正式說法「doctype」)開頭。在瀏覽器中,文件類型聲明有助於確定渲染模式——特別是是否使用怪異模式

文件類型聲明的初衷是透過基於文件類型定義(DTD)的SGML工具來解析並驗證HTML文件。

HTML5未定義DTD,所以在HTML5中文件類型聲明更為簡短:[67]

<!DOCTYPE html>

HTML 4文件類型聲明舉例:

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

該聲明參照HTML 4.01「嚴格」版的DTD。基於SGML的驗證器可讀取DTD,正確解析這些文件並執行驗證。在現代瀏覽器中,一個有效的文件類型啟用標準模式有別於怪異模式

另外,HTML 4.01提供過渡型與框架集型的DTD。過渡型涵蓋最廣,它可整合當前以及老舊或「過時」的標籤,而嚴格型DTD排除了過時的標籤。框架集擁有所有構建框架所需的標籤以及過渡型的標籤。[68]

語意化HTML

語意化HTML是一種編寫HTML的方式,它強調編碼資訊的含義在其格式(樣子)之上。HTML從創立之初就包括語意化標記[69],但也包括標識性標記如<font><i><center>標籤。也存在一些語意上中立的span與div標籤。自1990年代末CSS開始應用於大多數瀏覽器,網頁製作者就被鼓勵使用CSS以便呈現與內容分離[70]

在2001年一次對語意網的討論中,添·柏納斯-李等人給出了一種的方法,使智能軟件「代理人」可能有一天會自動抓取網頁進行尋找、過濾並將之前不相關的聯絡起來[71]。這種代理甚至在現在也不普遍,但一些Web 2.0混搭價格比較網站的想法可能會結束。這些網頁應用程式的混合與柏納斯-李的語意代理人的之間主要區別基於以下事實:當前的聚合與資訊混合通常由網頁開發者設計,他們早已知道網絡位置和他們希望混搭、比較與結合的特定數據的API語意。

網頁代理的一個重要類型是網絡爬蟲或搜尋引擎蜘蛛。這些軟件代理依賴於它們發現的網頁的語意清晰度,因為它們一天要使用各種技術與演算法來讀取和索引數百萬個網頁並給網頁用戶提供搜尋工具,沒有這些萬維網的有效性就會大大降低。

為使搜尋引擎蜘蛛評估它們在HTML文件中發現的文字片段的重要性,也為那些建立標記等混合的人與更多的自動化代理工具,HTML中的語意結構需要廣泛一致地應用從而將文字的含義呈現給瀏覽者。[72]

表示性標記在當前的HTML和XHTML推薦中不被鼓勵使用。舊版本HTML中的大多數表示功能不再被允許使用,因為它們導致可訪問性變差、站點維護成本變高和文件大小變大。[73]

好的語意化HTML也改善了網頁文件的可訪問性(參見網頁內容無障礙指南英語Web Content Accessibility Guidelines)。例如,當螢幕閱讀器或音頻瀏覽器可以正確判定一個文件的結構時,視覺障礙用戶不會再因閱讀重複或無關的資訊而浪費時間。

分發

HTML文件分發的方法和其他電腦檔案相同。不過,它們最常透過網頁伺服器超文字傳輸協定電子郵件傳輸。

HTTP

萬維網主要由從伺服器透過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的語法檢查更加鬆懈些。

W3C的推薦指出,遵循規定的推薦指引的XHTML 1.0文件可標記二者任一的MIME類型[74]。XHTML 1.1還指出,XHTML 1.1文件應[75]標有兩種MIME類型[76]

HTML郵件

大多數圖形電子郵件客戶端允許使用HTML的子集(經常界限不清)提供格式化和無法使用純文字語意標記。這可能包括印刷資訊,如彩色標題、強調和參照文字、內嵌圖片和圖表等。許多這樣的客戶包含一個編寫HTML電子郵件訊息的圖形化使用者介面編輯器和一個用於顯示的渲染引擎。在郵件中使用HTML受到了一些相容性的批評,由於一些盲人或具有視覺障礙的人的訪問問題,這種方式有利於偽裝的釣魚攻擊。因其訊息大小超過明文,所以它可混淆垃圾郵件過濾器。

命名規則

最常用的電腦副檔名.html,通用縮寫為.htm。它起源於某些早期作業系統與檔案系統,如DOS以及FAT數據結構的局限性,它將副檔名限制為3個字母[77]

HTML應用程式

HTML應用程式(HTA;副檔名".hta")是一個Microsoft Windows應用程式,它在瀏覽器中使用HTML和動態HTML提供應用程式圖形介面。正規HTML檔案被限制在瀏覽器的安全模型中,只能分別透過網頁伺服器和網頁對象與站點Cookie進行通訊和操作。HTA作為完全受信任的應用程式執行,因此擁有更多的權限,如建立/編輯/刪除檔案與登錄檔項。因為它們在瀏覽器安全模式之外操作,所以HTA不能透過HTTP執行,必須下載(就像EXE檔案)並在本地檔案系統執行。

所見即所得編輯器

所見即所得編輯器使用圖形化使用者介面(GUI)顯示HTML文件,常常類似於文書處理器,所以用戶可以設計一切。編者面對的是文件,而不是代碼,所以作者並不需要太多的HTML知識。這種所見即所得的編輯模式一直受到詬病[78][79],主要因為它生成的代碼質素不高;也有人主張將其改變至WYSIWYM模型(所見即所指)。

所見即所得的編輯器仍然是一個有爭議的話題,由於人們普遍認為它們存在以下缺陷:

  • 主要依賴於佈局而不是其具體含義,經常使用並不能傳達預期含義而只是簡單複製佈局的標記[80]
  • 經常產生非常冗長和重複的代碼,而這些代碼並沒有利用HTML和CSS的級聯特性。
  • 經常產生語法不正確的標記,被稱為「標籤湯」或語意不正確的標記(例如使用<em>來表示斜體)。
  • 由於HTML文件中的大量資訊並是不在佈局中,所以這種模型因其「所見即所得」的特性而一直受到詬病[81]

參見

參考文獻

  1. ^ HTML 5.2. W3C. 2017-12-14 [2018-03-02]. (原始內容存檔於2018-02-21). 
  2. ^ HTML 5.3 Editor’s Draft. W3C. 2017-03-01 [2018-03-02]. (原始內容存檔於2018-03-05). 
  3. ^ Flanagan, David. JavaScript - The definitive guide 6. : 1. JavaScript is part of the triad of technologies that all Web developers must learn: HTML to specify the content of web pages, CSS to specify the presentation of web pages, and JavaScript to specify the behaviour of web pages. 
  4. ^ HTML 4.0 Specification — W3C Recommendation — Conformance: requirements and recommendations. World Wide Web Consortium. 1997-12-18 [2015-07-06]. (原始內容存檔於2015-05-15). 
  5. ^ Tim Berners-Lee, "Information Management: A Proposal." CERN (March 1989, May 1990). W3.org頁面存檔備份,存於互聯網檔案館
  6. ^ Tim Berners-Lee, "Design Issues"頁面存檔備份,存於互聯網檔案館
  7. ^ Tim Berners-Lee, "Design Issues"頁面存檔備份,存於互聯網檔案館
  8. ^ HTML Tags. [2021-06-29]. (原始內容存檔於2019-11-16). 
  9. ^ 9.0 9.1 9.2 Tags used in HTML. World Wide Web Consortium. 1992-11-03 [2008-11-16]. (原始內容存檔於2010-01-31). 
  10. ^ First mention of HTML Tags on the www-talk mailing list. World Wide Web Consortium. 1991-10-29 [2007-04-08]. (原始內容存檔於2007-02-24). 
  11. ^ Index of elements in HTML 4. World Wide Web Consortium. 1999-12-24 [2007-04-08]. (原始內容存檔於2007-05-05). 
  12. ^ Tim Berners-Lee. Re: SGML/HTML docs, X Browser (archived www-talk mailing list post). 1991-12-09 [2007-06-16]. (原始內容存檔於2007-12-22). SGML is very general. HTML is a specific application of the SGML basic syntax applied to hypertext documents with simple structure. 
  13. ^ Raymond, Eric. IETF and the RFC Standards Process. The Art of Unix Programming. [2016-01-22]. (原始內容存檔於2005-03-17). In IETF tradition, standards have to arise from experience with a working prototype implementation — but once they become standards, code that does not conform to them is considered broken and mercilessly scrapped. ...Internet-Drafts are not specifications; software implementers and vendors are specifically barred from claiming compliance with them as if they were specifications. Internet-Drafts are focal points for discussion, usually in a working group... Once an Internet-Draft has been published with an RFC number, it is a specification to which implementers may claim conformance. It is expected that the authors of the RFC and the community at large will begin correcting the specification with field experience. 
  14. ^ HTML+ Internet-Draft — Abstract. [2016-01-22]. (原始內容存檔於2016-05-15). Browser writers are experimenting with extensions to HTML and it is now appropriate to draw these ideas together into a revised document format. The new format is designed to allow a gradual roll over from HTML, adding features like tables, captioned figures and fill-out forms for querying remote databases or mailing questionnaires. 
  15. ^ Berners-Lee, Tim; Connelly, Daniel. RFC 1866 – Hypertext Markup Language – 2.0. Internet Engineering Task Force. November 1995 [2010-12-01]. (原始內容存檔於2011-08-27). This document thus defines an HTML 2.0 (to distinguish it from the previous informal specifications). Future (generally upwardly compatible) versions of HTML with new features will be released with higher version numbers. 
  16. ^ 16.0 16.1 16.2 Raggett, Dave. Raggett on HTML 4. 1998 [2007-07-09]. (原始內容存檔於2007-06-25). 
  17. ^ HTML5 – Hypertext Markup Language – 5.0. Internet Engineering Task Force. 2014-10-28 [2014-11-25]. (原始內容存檔於2014-11-02). This document recommends HTML 5.0 after completion. 
  18. ^ HTML 3.2 Reference Specification. World Wide Web Consortium. 1997-01-14 [2008-11-16]. (原始內容存檔於2010-06-19). 
  19. ^ IETF HTML WG. [2007-06-16]. (原始內容存檔於2007-06-07). Note: This working group is closed 
  20. ^ 20.0 20.1 Arnoud Engelfriet. Introduction to Wilbur. Web Design Group. [2007-06-16]. (原始內容存檔於2007-07-05). 
  21. ^ HTML 4.0 Specification. World Wide Web Consortium. 1997-12-18 [2008-11-16]. (原始內容存檔於2011-06-06). 
  22. ^ HTML 4 – 4 Conformance: requirements and recommendations. [2009-12-30]. (原始內容存檔於2010-01-06). 
  23. ^ HTML 4.0 Specification. World Wide Web Consortium. 1998-04-24 [2008-11-16]. (原始內容存檔於2008-07-27). 
  24. ^ HTML 4.01 Specification. World Wide Web Consortium. 1999-12-24 [2008-11-16]. (原始內容存檔於2008-11-15). 
  25. ^ 25.0 25.1 ISO. ISO/IEC 15445:2000 – Information technology – Document description and processing languages – HyperText Markup Language (HTML). 2000 [2009-12-26]. (原始內容存檔於2009-07-07). 
  26. ^ Cs.Tcd.Ie頁面存檔備份,存於互聯網檔案館). Cs.Tcd.Ie (2000-05-15). Retrieved on 2012-02-16.
  27. ^ HTML5: A vocabulary and associated APIs for HTML and XHTML. World Wide Web Consortium. 2014-10-28 [2014-10-31]. (原始內容存檔於2014-10-30). 
  28. ^ Open Web Platform Milestone Achieved with HTML5 Recommendation (新聞稿). World Wide Web Consortium. 2014-10-28 [2014-10-31]. (原始內容存檔於2014-10-30). 
  29. ^ Connolly, Daniel. MIME as a hypertext architecture. CERN. 1992-06-06 [2010-10-24]. (原始內容存檔於2010-12-26). 
  30. ^ Connolly, Daniel. HTML DTD enclosed. CERN. 1992-07-15 [2010-10-24]. (原始內容存檔於2010-11-20). 
  31. ^ Connolly, Daniel. document type declaration subset for Hyper Text Markup Language as defined by the World Wide Web project. CERN. 1992-08-18 [2010-10-24]. (原始內容存檔於2012-03-14). 
  32. ^ 32.0 32.1 Connolly, Daniel. Document Type Definition for the Hyper Text Markup Language as used by the World Wide Web application. CERN. 1992-11-24 [2010-10-24]. (原始內容存檔於2012-01-18).  See section "Revision History"
  33. ^ Berners-Lee, Tim; Connolly, Daniel. Hyper Text Markup Language (HTML) Internet Draft version 1.1. IETF IIIR Working Group. June 1993 [2010-09-18]. (原始內容存檔於2010-11-16). 
  34. ^ Berners-Lee, Tim; Connolly, Daniel. Hypertext Markup Language (HTML) Internet Draft version 1.2. IETF IIIR Working Group. June 1993 [2010-09-18]. (原始內容存檔於2009-04-15). 
  35. ^ Berners-Lee, Tim; Connolly, Daniel. HyperText Markup Language Specification – 2.0 INTERNET DRAFT. IETF. 1994-11-28 [2010-10-24]. (原始內容存檔於2010-08-19). 
  36. ^ HTML 3.0 Draft (Expired!) Materials. World Wide Web Consortium. 1995-12-21 [2008-11-16]. (原始內容存檔於2008-10-25). 
  37. ^ 37.0 37.1 HyperText Markup Language Specification Version 3.0. [2007-06-16]. (原始內容存檔於2007-07-06). 
  38. ^ Raggett, Dave. HyperText Markup Language Specification Version 3.0. HTML 3.0 Internet Draft Expires in six months. World Wide Web Consortium. 1995-03-28 [2010-06-17]. (原始內容存檔於2010-03-14). 
  39. ^ Bowers, Neil. Weblint: Just Another Perl Hack. [2016-01-22]. (原始內容存檔於2011-05-11). 
  40. ^ Lie, Håkon Wium; Bos, Bert. Cascading style sheets: designing for the Web. Addison Wesley Longman. April 1997: 263 [2010-06-09]. (原始內容存檔於2017-07-17). 
  41. ^ HTML5. World Wide Web Consortium. 2008-06-10 [2008-11-16]. (原始內容存檔於2015-06-03). 
  42. ^ HTML5, one vocabulary, two serializations. [2009-02-25]. (原始內容存檔於2008-12-17). 
  43. ^ W3C Confirms May 2011 for HTML5 Last Call, Targets 2014 for HTML5 Standard. World Wide Web Consortium. 2011-02-14 [2011-02-18]. (原始內容存檔於2012-06-07). 
  44. ^ Hickson, Ian. HTML Is the New HTML5. [2011-01-21]. (原始內容存檔於2012-06-07). 
  45. ^ HTML5 gets the splits.. netmagazine.com. [2012-07-23]. (原始內容存檔於2012-07-25). 
  46. ^ HTML5. W3.org. 2012-12-17 [2013-06-15]. (原始內容存檔於2013-06-20). 
  47. ^ Call for Review: HTML5 Proposed Recommendation Published W3C News. W3.org. 2014-09-16 [2014-09-27]. (原始內容存檔於2014-09-26). 
  48. ^ Open Web Platform Milestone Achieved with HTML5 Recommendation. W3C. 2014-10-28 [2014-10-29]. (原始內容存檔於2014-10-28). 
  49. ^ HTML5 specification finalized, squabbling over specs continues. Ars Technica. 2014-10-29 [2014-10-29]. (原始內容存檔於2014-10-29). 
  50. ^ XHTML 1.0: The Extensible HyperText Markup Language (Second Edition). World Wide Web Consortium. 2000-01-26 [2008-11-16]. (原始內容存檔於2008-11-14). 
  51. ^ XHTML 1.1 – Module-based XHTML — Second Edition. World Wide Web Consortium. 2007-02-16 [2008-11-16]. (原始內容存檔於2008-11-14). 
  52. ^ XHTM 2.0. World Wide Web Consortium. 2006-07-26 [2008-11-16]. (原始內容存檔於2008-11-15). 
  53. ^ XHTML 2 Working Group Expected to Stop Work End of 2009, W3C to Increase Resources on HTML5. World Wide Web Consortium. 2009-07-17 [2008-11-16]. (原始內容存檔於2011-01-27). 
  54. ^ W3C XHTML FAQ. [2016-01-22]. (原始內容存檔於2012-06-07). 
  55. ^ HTML5. W3C. 2013-10-19 [2016-01-22]. (原始內容存檔於2013-10-20). 
  56. ^ Activating Browser Modes with Doctype頁面存檔備份,存於互聯網檔案館). Hsivonen.iki.fi. Retrieved on 2012-02-16.
  57. ^ HTML Elements. w3schools. [2015-03-16]. (原始內容存檔於2015-03-15). 
  58. ^ CSS Introduction. W3schools. [2015-03-16]. (原始內容存檔於2015-03-17). 
  59. ^ On SGML and HTML. World Wide Web Consortium. [2008-11-16]. (原始內容存檔於2008-11-17). 
  60. ^ XHTML 1.0 – Differences with HTML 4. World Wide Web Consortium. [2008-11-16]. (原始內容存檔於2008-12-21). 
  61. ^ Korpela, Jukka. Why attribute values should always be quoted in HTML. Cs.tut.fi. 1998-07-06 [2008-11-16]. (原始內容存檔於2008-11-21). 
  62. ^ Objects, Images, and Applets in HTML documents. World Wide Web Consortium. 1999-12-24 [2008-11-16]. (原始內容存檔於2008-03-12). 
  63. ^ H56: Using the dir attribute on an inline element to resolve problems with nested directional runs. Techniques for WCAG 2.0. W3C. [2010-09-18]. (原始內容存檔於2010-11-09). 
  64. ^ Character Entity Reference Chart. World Wide Web Consortium. 2012-10-24 [2016-01-26]. (原始內容存檔於2013-08-14). 
  65. ^ The Named Character Reference &apos;. World Wide Web Consortium. 2000-01-26 [2006-02-09]. (原始內容存檔於2009-02-12). 
  66. ^ The Unicode Standard: A Technical Introduction. [2010-03-16]. (原始內容存檔於2010-03-10). 
  67. ^ "HTML: The Markup Language (an HTML language reference)"頁面存檔備份,存於互聯網檔案館). Retrieved 2013-08-19.
  68. ^ SAMS teach yourself html and css 8th edition
  69. ^ Berners-Lee, Tim; Fischetti, Mark. Weaving the Web: The Original Design and Ultimate Destiny of the World Wide Web by Its Inventor. San Francisco: Harper. 2000. ISBN 978-0-06-251587-2. 
  70. ^ Raggett, Dave. Adding a touch of style. W3C. 2002 [2009-10-02]. (原始內容存檔於2009-10-06).  This article notes that presentational HTML markup may be useful when targeting browsers "before Netscape 4.0 and Internet Explorer 4.0". See the list of web browsers to confirm that these were both released in 1997.
  71. ^ Tim Berners-Lee, James Hendler and Ora Lassila. The Semantic Web. Scientific American. 2001 [2009-10-02]. (原始內容存檔於2009-10-01). 
  72. ^ Nigel Shadbolt, Wendy Hall and Tim Berners-Lee. The Semantic Web Revisited (PDF). IEEE Intelligent Systems. 2006 [2009-10-02]. (原始內容存檔 (PDF)於2009-09-18). 
  73. ^ HTML: The Living Standard. WHATWG. [2018-09-27]. (原始內容存檔於2018-09-27). 
  74. ^ XHTML 1.0 The Extensible HyperText Markup Language (Second Edition). World Wide Web Consortium. 2002 [2000] [2008-12-07]. (原始內容存檔於2008-12-04). XHTML Documents which follow the guidelines set forth in Appendix C, "HTML Compatibility Guidelines" may be labeled with the Internet Media Type "text/html" [RFC2854], as they are compatible with most HTML browsers. Those documents, and any other document conforming to this specification, may also be labeled with the Internet Media Type "application/xhtml+xml" as defined in [RFC3236]. 
  75. ^ RFC 2119: Key words for use in RFCs to Indicate Requirement Levels. Harvard University. 1997 [2008-12-07]. (原始內容存檔於2008-12-06). 3. SHOULD This word, or the adjective "RECOMMENDED", mean that there may exist valid reasons in particular circumstances to ignore a particular item, but the full implications must be understood and carefully weighed before choosing a different course. 
  76. ^ XHTML 1.1 – Module-based XHTML — Second Edition. World Wide Web Consortium. 2007 [2008-12-07]. (原始內容存檔於2008-12-17). XHTML 1.1 documents SHOULD be labeled with the Internet Media Type text/html as defined in [RFC2854] or application/xhtml+xml as defined in [RFC3236]. 
  77. ^ Naming Files, Paths, and Namespaces. Microsoft. [2015-03-16]. (原始內容存檔於2015-04-02). 
  78. ^ Sauer, C.: WYSIWIKI – Questioning WYSIWYG in the Internet Age. In: Wikimania (2006)
  79. ^ Spiesser, J., Kitchen, L.: Optimization of HTML automatically generated by WYSIWYG programs. In: 13th International Conference on World Wide Web, pp. 355—364. WWW '04. ACM, New York, NY (New York, NY, U.S., May 17–20, 2004)
  80. ^ XHTML Reference: blockquote Archived 2010-03-25 at the Wayback Machine. Xhtml.com.[2023-10-16].
  81. ^ Invisible Revolution. www.invisiblerevolution.net. [2023-10-17]. (原始內容存檔於2021-12-09). 

延伸閱讀