超文本标记措辞(英语:HyperText Markup Language,简称:HTML)是一种用于创建网页的标准标记措辞。
HTML是一种根本技能,常与CSS、JavaScript一起被浩瀚网站用于设计令民气旷神怡的网页、网页运用程序以及移动运用程序的用户界面。
网页浏览器可以读取HTML文件,并将其渲染成可视化网页。
HTML描述了一个网站的构造语义随着线索的呈现,使之成为一种标记措辞而非编程措辞。

HTML元素是构建网站的基石。
HTML许可嵌入图像与工具,并且可以用于创建交互式表单,它被用来构造化信息——例如标题、段落和列表等等,也可用来在一定程度上描述文档的外不雅观和语义。
HTML的措辞形式为尖括号包围的HTML元素(如<html>),浏览器利用HTML标签和脚本来诠释网页内容,但不会将它们显示在页面上。

HTML可以嵌入如JavaScript的脚本措辞,它们会影响HTML网页的行为。
网页浏览器也可以引用层叠样式表(CSS)来定义文本和其它元素的外不雅观与布局。
掩护HTML和CSS标准的组织万维网同盟(W3C)鼓励人们利用CSS替代一些用于表现的HTML元素。

html3css5页面HTML 简介 GraphQL

历史

W3C制作的早期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标签是最常见的,常日成对涌现,比如<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。
如果未进行声明,浏览器会利用“怪异模式”进行渲染。

元素

HTML文档由嵌套的HTML元素构成。
它们用HTML标签表示,包含于尖括号中,如<p>

在一样平常情形下,一个元素由一对标签表示:“开始标签”<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)。

用于文本外不雅观的表现式标记,不论其目的

例如,<b>粗体</b>表示视觉输出设备应将文本“粗体”加粗,但如果设备无法做到这一点(如朗读文本的听觉设备),就不会发生什么征象。
在这种情形下,<b>粗体</b>与''斜体''也可能有相同的视觉效果,但在实质上它们更加语义化。
犹如<strong>加强笔墨</strong>与<em>强调笔墨</em>的差异。
为支持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弗成)。
不加引号的属性值被认为是不屈安的[58]。
有些属性无需成对涌现,仅存在于开始标签中即可影响元素[6],如img 元素的ismap 属性。

许多元素存在一些共通的属性:

id属性为元素供应了在全文档内的唯一标识。
它用于识别元素,以便样式表可以改变其表现属性,脚本可以改变、显示或删除其内容或格式化。
对付添加到页面的URL,它为元素供应了一个全局唯一标识,常日为页面的子章节。
例如,ID \"大众属性\公众对付https://zh.wikipedia.org/wiki/HTML#属性

class属性供应一种将类似元素分类的办法。
常被用于语义化或格式化。
例如,一个HTML文档可指定类<class=\"大众标记\"大众>来表明所有具有这一类值的元素都从属于文档的主文本。
格式化后,这样的元素可能会聚拢在一起,并作为页面脚注而不会涌如今HTML代码中。
类属性也被用于微格式的语义化。
类值也可进行多声明。
如<class=\"大众标记 主要\"大众>将元素同时放入標記与主要两类中。

style属性可以将表现性子授予一个特定元素。
比起利用id或class 属性从样式表中选择元素,“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\公众采取从右到左的文本,比如阿拉伯语、波斯语以及希伯来语。

字符与实体引用

拜会:XML与HTML字符实体引用列表和Unicode与HTML

在4.0版本中,HTML定义了一系列共252个字符实体引用和1,114,050个字元值参考。
二者都支持单个字符通过大略的标记写入。
笔墨字符与其对应的标记渲染的效果相同。

用这种办法“转义”字符的能力许可字符<与&(当分别被写作<和&时)被理解为字符数据而不是标记。
例如<常日为标签的开头,&常日为字符实体引用与数字字符引用的开头;&或&或&将&作为元素的内容或属性的值。
双引号字符\"大众在不被用于属性值的标示时必须转义为\公众或\"大众或\"大众;相等地,当于单引号字符'不被用于属性值的标示时,也必须转义为'或'(或HTML5与XHTML文档中的')。

如果文档作者忽略了转义这样的字符,一些浏览器会考试测验通过高下文预测他们的意图。
如果结果仍为无效标记,这会使其他浏览器或用户代理难以访问到该文档,并使它们考试测验利用搜索和索引来解析该文档。

那些难以输入或不在该文档字符编码中的字符也可通过转义来实现。
例如常日只在西欧或南美的键盘涌现的重音符e(é),可以在HTML文档中用作实体引用é 或数字引用é或é。
诸如UTF-8的Unicode字符编码与所有的当代浏览器兼容并许可直接访问环球书写系统险些所有的字符 。

数据类型

HTML为元素内容定义了多种数据类型,如脚本数据、样式表数据以及许多属性值的类型,包括ID、名称、URI、数字长度单位、措辞、媒体描述符颜色、字符编码、日期和韶光等等。
所有这些数据类型都是字符数据的分外化。

文档类型声明

HTML文档须要以文档类型声明(英语:document type declaration)(英语非正式说法“doctype”)开头。
在浏览器中,文档类型声明有助于确定渲染模式——特殊是是否利用怪异模式。

文档类型声明的初衷是通过基于文档类型定义(DTD)的SGML工具来解析并验证HTML文档。

HTML5未定义DTD,以是在HTML5中文档类型声明更为简短:

<!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打消了过期的标签。
框架集拥有所有构建框架所需的标签以及过渡型的标签。

语义化HTML

语义化HTML是一种编写HTML的办法,它强调编码信息的含义在其格式(样子)之上。
HTML从创立之初就包括语义化标记,但也包括标识性标记如<font>、<i>和<center>标签。
也存在一些语义上中立的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模型(所见即所指)。