HTML 簡介

  • 時間:2018-07-31 22:46 作者:Lonelywhitehat 來源:Lonelywhitehat 閱讀:236
  • 掃一掃,手機訪問
摘要:超文本標記語言(英語:HyperText Markup Language,簡稱:HTML)是一種使用于創立網頁的標準標記語言。HTML是一種基礎技術,常與CSS、JavaScript一起被眾多網站使用于設計令人賞心悅目的網頁、網頁應使用程序以及移動應使用程序的使用戶界面。網頁瀏覽器可以讀取HTML文
HTML 簡介

超文本標記語言(英語:HyperText Markup Language,簡稱:HTML)是一種使用于創立網頁的標準標記語言。HTML是一種基礎技術,常與CSS、JavaScript一起被眾多網站使用于設計令人賞心悅目的網頁、網頁應使用程序以及移動應使用程序的使用戶界面。網頁瀏覽器可以讀取HTML文件,并將其渲染成可視化網頁。HTML形容了一個網站的結構語義隨著線索的呈現,使之成為一種標記語言而非編程語言。

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

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

歷史

W3C制作的早期HTML標志

發展

HTML 簡介

蒂姆·伯納斯-李

1980年,物理學家蒂姆·伯納斯-李在歐洲核子研究中心(CERN)在承包工程期間,為使CERN的研究人員用并共享文檔,他提出并創立原型系統ENQUIRE。1989年,伯納斯-李在一份備忘錄中提出一個基于互聯網的超文本系統。他規定HTML并在1990年底寫出瀏覽器和服務器軟件。同年,伯納斯-李與CERN的數據系統工程師羅伯特·卡里奧聯合為項目申請贊助,但未被CERN正式批準。在他的個人筆記中伯納斯-李列舉“少量用超文本的領域”,并把百科全書列為首位。

HTML的首個公開形容出現于一個名為“HTML標簽”的文件中,由蒂姆·伯納斯-李于1991年底提及。它形容18個元素,包括HTML初始的、相對簡單的設計。除了超鏈接標簽外,其余設計都深受CERN內部一個以標準通使用標記語言(SGML)為基礎的文件格式SGMLguid的影響。這些元素在HTML 4中仍有11個存在。

伯納斯-李認為HTML是SGML的一個應使用程序。1993年中期互聯網工程任務組(IETF)發布首個HTML規范的提案:“超文本標記語言(HTML)”互聯網草案,由伯納斯-李與丹·康納利(英語:Dan Connolly (computer scientist))撰寫。其中包括一個SGML文檔類型定義來定義語法。草案于6個月后過期,不過值得注意的是其對NCSA Mosaic瀏覽器自己設置標簽從而將在線圖像嵌入的行為的認可,這反映IETF把標準立足于成功原型的理念。同樣,戴夫·拉格特(英語:Dave Raggett)在1993年末提出的與之競爭的互聯網草案“HTML+(超文本標記格式)”建議規范已經實現的功能,如表格與填寫表單。

在HTML和HTML+的草案于1994年初到期后,IETF創立一個HTML工作組,并在1995年完成"HTML 2.0",這是第一個旨在成為對其后續實現標準的依據的HTML規范。

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

版本時間線

1995年11月24日

HTML 2.0作為IETF RFC 1866發布。追加RFC的附加功能:

1995年11月25日:RFC 1867(基于表單的文件上傳)

1996年5月:RFC 1942(表格)

1996年8月:RFC 1980(用戶端圖像映射)

1997年1月:RFC 2070(國際化)

1997年1月14日

HTML 3.2作為W3C推薦標準發布。這是首個完全由W3C開發并標準化的版本,因IETF于1996年9月12日關閉它的HTML工作組。

最初代號為“威爾伯”(Wilbur),HTML 3.2完全去除數學公式,協調各種專有擴展,并采使用網景設計的大多數視覺標記標簽。因為兩家公司達成了協議,網景的閃爍元素(英語:blink element)和微軟的滾動元素(英語:marquee element)被移除。HTML對數學公式的支持最后成為另外一種被稱為MathML的標準。

1997年12月18日

HTML 4.0作為W3C推薦標準發布。它提供三種變化:

嚴格,過時的元素被禁止。

過渡,過時的元素被允許。

框架集,大多只與框架相關的元素被允許。

最初代號“美洲獅”(Cougar), HTML 4.0采使用許多特定瀏覽器的元素類型和屬性,并試圖淘汰網景的視覺標記功能,將其標記為不贊成用。HTML 4是遵循ISO 8879 - SGML的SGML應使用程序。

1998年4月24日

HTML 4.0進行微調,不添加版本號。

1999年12月24日

HTML 4.01作為W3C推薦標準發布。它同樣提供三種變化,最終勘誤版于2001年5月12日發布。

2000年5月

ISO/IEC 15445:2000("ISO HTML",基于HTML 4.01嚴格版)作為ISO/IEC國際標準發布。在ISO中這一標準位于ISO/IEC JTC 1/SC 34(英語:ISO/IEC JTC 1/SC 34)域(ISO/IEC聯合技術委員會1、小組委員會34 – 文檔形容與解決語言)。

2014年10月28日

HTML 5作為W3C推薦標準發布。

草案時間線

HTML5的Logo

1991年10月

HTML標簽,一個非正式CERN文件初次公開18個HTML標簽。

1992年6月

HTML DTD的首個非正式草案, 后續有七個修訂版(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),非正式草案。

1993年6月

超文本標記語言由IETF IIIR工作小組作為互聯網草案(一個粗略的建議標準)。在被第二版代一個月后,IETF又發布6個草案,最終在RFC1866中發布HTML 2.0。

1993年11月

HTML+由IETF作為互聯網草案發布,是超文本標記語言草案的一個競爭性提案。它于1994年5月到期。

1995年4月 (1995年3月編寫)

HTML 3.0[33]被提議作為IETF的標準,但直到提案在五個月過期后(1995年9月28日)仍沒有進一步的行動。它包含許多拉格特HTML+提案的功能,如對表格的支持、圍繞數據的文本流和復雜的數學公式的顯示。W3C開始開發自己的Arena瀏覽器作為HTML 3和層疊樣式表的實驗臺(英語:Test bed),但HTML 3.0并沒有取得成功。瀏覽器廠商,包括微軟和網景,選擇實現HTML3草案功能的不同子集并引入它們自己的插件(見瀏覽器大戰)。

2008年1月

HTML5由W3C作為工作草案(鏈接)發布。盡管HTML5的語法非常相似于SGML,但它已經放棄任何成為SGML應使用程序的嘗試,除了一種替代的基于XML的HTML5序列,它已明確定義自己的“HTML”序列。

2011年 HTML5 – 最終征求

2011年5月,工作小組將HTML5推進至“最終征求”(Last Call)階段,邀請W3C社區內外人士以確認本規范的技術可靠性。W3C開發一套綜合性測試套件來實現完整規范的廣泛交互操作性,完整規范的目標日期為2014年。2011年1月,WHATWG將其“HTML5”活動標準重命名為“HTML”。W3C依然繼續其發布HTML5的項目。

2012年 HTML5 – 候選推薦

2012年7月,WHATWG和W3C的工作產生肯定程度的分離。W3C繼續HTML5規范工作,重點放在單一明確的標準上,這被WHATWG稱為“快照”。WHATWG組織則將HTML5作為一個“活動標準”(Living Standard)。活動標準的概念是從未完成但永遠保持升級與改進,可以增加新特性,但功能點不會被刪除。

2012年12月,W3C指定HTML5作為候選推薦階段。 該階段的標準為“兩個100%完成,完全實現交互操作”。

2014年 HTML5 – 提案推薦與推薦

2014年9月,HTML5進入提案推薦階段。

2014年10月28日,HTML5作為穩固W3C推薦標準發布,這意味著HTML5的標準化已經完成。

XHTML版本

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

XHTML 1.0, 2000年1月26日作為W3C推薦標準發布。修訂版于2002年8月1日發布,它提供與HTML 4.0和4.01相同的三個變化,這些變化被重新在XML中制定。

XHTML 1.1,基于XHTML 1.0 嚴格版,2001年5月31日 作為W3C推薦標準發布。修訂版可用板塊化XHTML的板塊,2001年4月10日作為W3C推薦標準發布。

XHTML 2.0為工作草案,但為支持HTML5與XHTML5的工作,此草案被放棄。 XHTML 2.0與XHTML 1.x不兼容,因而更確切的說這是一個XHTML風格的新語言而不是XHTML 1.x的升級。

在HTML5草案中規定一個XHTML語法,稱為“XHTML5.1”。

標記

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

。這些成對出現的標簽中,第一個標簽是開始標簽,第二個標簽是結束標簽。兩個標簽之間為元素的內容,有些標簽沒有內容,為空元素,如

HTML另一個重要組成部分為文檔類型公告(英語:document type declaration),這會觸發標準模式渲染。

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

This is a title

Hello world!

广东11选5今天开奖

和之間的文本形容網頁,和之間的文本為可視頁面內容。標記文本This is a title定義了瀏覽器的頁面標題。

文檔標記類型使用于HTML5。 假如未進行公告,瀏覽器會用“怪異模式”進行渲染。

元素

HTML文檔由嵌套的HTML元素構成。它們使用HTML標簽表示,包含于尖括號中,如

在一般情況下,一個元素由一對標簽表示:“開始標簽”

與“結束標簽”

。元素假如含有文本內容,就被放置在這些標簽之間。

在開始與結束標簽之間也可以封裝另外的標簽,包括標簽與文本的混合。這些嵌套元素是父元素的子元素。

開始標簽也可包含標簽屬性。這些屬性有諸如標識文檔區段、將樣式信息綁定到文檔演示和為少量如等的標簽嵌入圖像、引使用圖像來源等作使用。

少量元素如換行符
,不允許嵌入任何內容,無論是文字或者其余標簽。這些元素只要一個單一的空標簽(相似于一個開始標簽),無需結束標簽。

許多標簽是可選的,尤其是那些很常使用的段落元素

的閉合端標簽。HTML瀏覽器或者其余媒介可以從上下文識別出元素的閉合端以及由HTML標準所定義的結構規則。這些規則非常復雜,不是大多數HTML編碼人員可以完全了解的。

因而,一個HTML元素的一般形式為:''content''。少量HTML元素被定義為空元素,其形式為。空元素不能封裝任何內容。例如
標簽或者內聯標簽。一個HTML元素的名稱即為標簽用的名稱。注意,結束標簽的名稱前面有一個斜杠“/”,空元素不需要也不允許結束標簽。假如元素屬性未標明,則用其默認值。

例子

HTML文檔的頁眉:...。標題被包含在頭部,例如:

The Title

標題:HTML標題由

六個標簽構成,字體由大到小遞減:

Heading level 1

Heading level 2

Heading level 3

Heading level 4

Heading level 5

Heading level 6

段落:

第一段

第二段

換行:

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

這是
一個
用換行
段落

鏈接:用標簽來創立鏈接。href屬性包含鏈接的URL地址。

中文維基百科的連結!

注釋:

注釋有助于了解標記,但它不會在網頁上顯示。

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

使用于文本的結構式標記

例如,

羽毛球

將“羽毛球”定義為二級標題。結構式標記不指示任何特定的渲染,但大多數網頁瀏覽器都會采使用元素格式的默認樣式。要在內容上實現進一步的風格可以用層疊樣式表(CSS)。

使用于文本外觀的體現式標記,不管其目的

例如,粗體表示視覺輸出設施應將文本“粗體”加粗,但假如設施無法做到這一點(如朗讀文本的聽覺設施),就不會發生什么現象。在這種情況下,粗體與''斜體''也可能有相同的視覺效果,但在本質上它們更加語義化。好像增強文字強調文字的區別。為支持CSS的用,大多數體現式標記在HTML 4.0規范中不再被推薦用。

超文本標記使文檔的一部分鏈接到其余文檔

錨元素在文檔中創立超鏈接,其href屬性設置鏈接的目標URL。例如:HTML標記中文維基百科會將文字"中文維基百科"渲染為超鏈接。要將圖片渲染為超鏈接,img元素要作為內容插入到a元素中:說明文字

屬性

大多數元素的屬性以“名稱-值”的形式成對出現,由“=”分離并寫在開始標簽元素名之后。值一般由單引號或者雙引號包圍,有些值的內容包含特定字符,在HTML中可以去掉引號(XHTML不行)。不加引號的屬性值被認為是不安全的[58]。有些屬性無需成對出現,僅存在于開始標簽中就可影響元素[6],如img 元素的ismap 屬性。

許多元素存在少量共通的屬性:

id屬性為元素提供了在全文檔內的唯一標識。它使用于識別元素,以便樣式表可以改變其體現屬性,腳本可以改變、顯示或者刪除其內容或者格式化。對于增加到頁面的URL,它為元素提供了一個全局唯一標識,通常為頁面的子章節。例如,ID "屬性"對于https://zh.wikipedia.org/wiki/HTML#屬性

class屬性提供一種將相似元素分類的方式。常被使用于語義化或者格式化。例如,一個HTML文檔可指定類來表明所有具備這一類值的元素都從屬于文檔的主文本。格式化后,這樣的元素可能會聚集在一起,并作為頁面腳注而不會出現在HTML代碼中。類屬性也被使用于微格式的語義化。類值也可進行多公告。如將元素同時放入標記與重要兩類中。

style屬性可以將體現性質賦予一個特定元素。比起用id或者class 屬性從樣式表中選擇元素,“style”被認為是一個更好的做法,雖然有時這對一個簡單、專使用或者特別的樣式顯得太繁瑣。

title屬性使用于給元素一個附加的說明。 大多數瀏覽器中這一屬性顯示為工具提醒(英語:Tooltip)。

lang屬性使用于識別元素內容的語言,它可能與文檔的主要語言不同。例如,在中文文檔中:

法語c'est la vie在法國的應使用很普遍,意為“這就是生活” 。

縮寫元素abbr可使用于說明少量屬性:

HTML

這個例子顯示為HTML; 在大多數瀏覽器中,光標指向縮寫時會顯示標題文字“超文本標記語言”。

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

字符與實體引使用

參見:XML與HTML字符實體引使用列表和Unicode與HTML

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

使用這種方式“轉義”字符的能力允許字符<與&amp;(當分別被寫作<和&amp;時)被了解為字符數據而不是標記。例如<通常為標簽的開頭,&amp;通常為字符實體引使用與數字字符引使用的開頭;&amp;或者&amp;或者&amp;將&amp;作為元素的內容或者屬性的值。雙引號字符"在不被使用于屬性值的標示時必需轉義為"或者"或者";相等地,當于單引號字符'不被使用于屬性值的標示時,也必需轉義為'或者'(或者HTML5與XHTML文檔中的')。

假如文檔作者忽略了轉義這樣的字符,少量瀏覽器會嘗試通過上下文猜測他們的用意。假如結果仍為無效標記,這會使其余瀏覽器或者使用戶代理商難以訪問到該文檔,并使它們嘗試用搜索和索引來解析該文檔。

那些難以輸入或者不在該文檔字符編碼中的字符也可通過轉義來實現。例如通常只在西歐或者南美的鍵盤出現的重音符e(é),可以在HTML文檔中使用作實體引使用é 或者數字引使用é或者é。 諸如UTF-8的Unicode字符編碼與所有的現代瀏覽器兼容并允許直接訪問全球書寫系統幾乎所有的字符 。

數據類型

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

文檔類型公告

HTML文檔需要以文檔類型公告(英語:document type declaration)(英語非正式說法“doctype”)開頭。在瀏覽器中,文檔類型公告有助于確定渲染模式——特別是能否用怪異模式。

文檔類型公告的初衷是通過基于文檔類型定義(DTD)的SGML工具來解析并驗證HTML文檔。

HTML5未定義DTD,所以在HTML5中文檔類型公告更為簡短:

HTML 4文檔類型公告舉例:

該公告引使用HTML 4.01“嚴格”版的DTD。基于SGML的驗證器可讀取DTD,正確解析這些文檔并執行驗證。在現代瀏覽器中,一個有效的文檔類型激活標準模式有別于怪異模式。

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

語義化HTML

語義化HTML是一種編寫HTML的方式,它強調編碼信息的含義在其格式(樣子)之上。HTML從創建之初就包括語義化標記,但也包括標識性標記如

標簽。也存在少量語義上中立的span與div標簽。自1990年代末層疊樣式表開始應使用于大多數瀏覽器,網頁制作者就被鼓勵用CSS以便呈現與內容分離。

在2001年一次對語義網的探討中,蒂姆·伯納斯-李等人給出了一種的方法,使智能軟件“代理商人”可能有一天會自動抓取網頁進行查找、過濾并將之前不相關的聯絡起來。這種代理商甚至在現在也不普遍,但少量Web 2.0、混搭和價格比較網站的想法可能會結束。這些網頁應使用程序的混合與伯納斯-李的語義代理商人的之間主要區別基于以下事實:當前的聚合與信息混合通常由網頁開發者設計,他們早已知道網絡位置和他們希望混搭、比較與結合的特定數據的API語義。

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

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

表示性標記在當前的HTML和XHTML推薦中不被鼓勵用,HTML5中則被視為非法。

好的語義化HTML也改善了網頁文檔的可訪問性。例如,當屏幕閱讀器或者音頻瀏覽器可以正確判定一個文檔的結構時,視覺障礙使用戶不會再因閱讀重復或者無關的信息而白費時間。

分發

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類型。XHTML 1.1還指出,XHTML 1.1文檔應標有兩種MIME類型。

HTML郵件

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

命名規則

最常使用的計算機文件擴展名為.html,通使用縮寫為.htm。它起源于某些早期操作系統與文件系統,如DOS以及FAT數據結構的局限性,它將文件擴展名限制為3個字母。

HTML應使用程序

HTML應使用程序(HTA;文件擴展名".hta")是一個Microsoft Windows應使用程序,它在瀏覽器中用HTML和動態HTML提供應使用程序圖形界面。正規HTML文件被限制在瀏覽器的安全模型中,只能分別通過網頁服務器和網頁對象與站點Cookie進行通信和操作。HTA作為完全受信任的應使用程序運行,因而擁有更多的權限,如創立/編輯/刪除文件與注冊表項。由于它們在瀏覽器安全模式之外操作,所以HTA不能通過HTTP執行,必需下載(就像EXE文件)并在本地文件系統執行。

所見即所得編輯器

所見即所得編輯器用圖形使用戶界面(GUI)顯示HTML文檔,常常相似于文字解決器,所以使用戶可以設計一切。編者面對的是文檔,而不是代碼,所以作者并不需要太多的HTML知識。這種所見即所得的編輯模式一直受到詬病,主要由于它生成的代碼質量不高;也有人主張將其改變至WYSIWYM模型(所見即所指)。

  • 全部評論(0)
最新發布的資訊信息
【系統環境|服務器應用】在CentOS 7上如何安裝Gogs 0.11.53(2020-02-10 10:14)
【系統環境|】淘碼庫,據消息稱已被調查。淘碼庫源碼網,已經無法訪問!(2020-01-14 04:13)
【系統環境|服務器應用】Discuz隱藏后臺admin.php網址修改路徑(2019-12-16 16:48)
【系統環境|服務器應用】2020新網站如何讓百度快速收錄網站首頁最新方法,親測有用!免費(2019-12-16 16:46)
【系統環境|服務器應用】Discuz發布帖子時默認顯示第一個主題分類的修改方法(2019-12-09 00:13)
【系統環境|軟件環境】Android | App內存優化 之 內存泄漏 要點概述 以及 處理實戰(2019-12-04 14:27)
【系統環境|軟件環境】MySQL InnoDB 事務(2019-12-04 14:26)
【系統環境|軟件環境】vue-router(單頁面應用控制中心)常見用法(2019-12-04 14:26)
【系統環境|軟件環境】Linux中的Kill命令(2019-12-04 14:26)
【系統環境|軟件環境】Linux 入門時必學60個文件解決命令(2019-12-04 14:26)