HTML 简介

  • 时间:2018-07-31 22:46 作者:Lonelywhitehat 来源:Lonelywhitehat 阅读:530
  • 扫一扫,手机访问
摘要:超文本标记语言(英语: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!

和之间的文本形容网页,和之间的文本为可视页面内容。标记文本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)
最新发布的资讯信息
【系统环境|windows】字节跳动前台面试题解析:盛最多水的容器(2021-03-20 21:27)
【系统环境|windows】DevOps敏捷60问,肯定有你想理解的问题(2021-03-20 21:27)
【系统环境|windows】字节跳动最爱考的前台面试题:JavaScript 基础(2021-03-20 21:27)
【系统环境|windows】JavaScript 的 switch 条件语句(2021-03-20 21:27)
【系统环境|windows】解决 XML 数据应用实践(2021-03-20 21:26)
【系统环境|windows】20个编写现代CSS代码的建议(2021-03-20 21:26)
【系统环境|windows】《vue 3.0探险记》- 运行报错:Error:To install them, you can run: npm install --save core-js/modules/es.arra...(2021-03-20 21:24)
【系统环境|windows】浅谈前台可视化编辑器的实现(2021-03-20 21:24)
【系统环境|windows】产品经理入门迁移学习指南(2021-03-20 21:23)
【系统环境|windows】初识webRTC(2021-03-20 21:23)
血鸟云