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). 

延伸閱讀