HTML
![]() 最新版本的官方徽标HTML5
| |
文件名扩展名 |
|
---|---|
互联网媒体类型 |
文本/html
|
类型代码 | 文字 |
统一类型标识符(UTI) | public.html |
由开发 | |
初始发行 | 1993 |
最新发布 | |
格式的类型 | 文档文件格式 |
容器 | HTML元素 |
包含 | 网页浏览器 |
从 | SGML |
扩展到 | xhtml |
打开格式? | 是的 |
网站 | html.spec.whatwg.org |
超文本标记语言或HTML是旨在在Web浏览器中显示的文档的标准标记语言。它定义了Web内容的内容和结构。通常,诸如级联样式表(CSS)和脚本语言(例如JavaScript)之类的技术可以帮助它。
Web浏览器从Web服务器或本地存储接收HTML文档,并将文档渲染到多媒体网页中。 HTML用语义和最初包含其外观的线索描述了网页的结构。
HTML元素是HTML页面的构件。使用HTML构造,图像和其他对象(例如交互式形式)可以嵌入到渲染页面中。 HTML提供了一种通过表示标题,段落,列表,链接,引号和其他项目等文本的结构语义来创建结构化文档的方法。 HTML元素用标签描绘,使用角括号编写。标签,例如<img>
和<input>
直接将内容引入页面。其他标签,例如<p>
和</p>
包围并提供有关文档文本的信息,并可能包括子元素标签。浏览器不显示HTML标签,而是使用它们来解释页面的内容。
HTML可以嵌入用脚本语言(例如JavaScript)编写的程序,这会影响网页的行为和内容。 CSS的包含定义了内容的外观和布局。自1997年以来,HTML的前维护者和CSS标准的现有维护者的前维护者和当前维护者的世界内部网络联盟( W3C)自1997年以来一直在使用CSS来使用CSS。音频,主要使用<canvas>
元素,以及JavaScript。
历史
发展

1980年, CERN的承包商Tim Berners-Lee提议和原型询问是CERN研究人员使用和共享文件的系统。 1989年,伯纳斯·李(Berners -Lee)撰写了一份备忘录,提出了一个基于互联网的超文本系统。 Berners-Lee指定了HTML,并于1990年底撰写了浏览器和服务器软件。那一年,Berners-Lee和Cern Data Systems工程师Robert Cailliau合作处理了共同的资金请求,但该项目并未由CERN正式采用。伯纳斯·李(Berners-Lee)在1990年的个人笔记中列出了“使用超文本的许多领域中的一些”;百科全书是第一个条目。
HTML的第一个公开描述是一份名为“ HTML标签”的文档,Tim Berners-Lee于1991年下半年在Internet上首次提及。它描述了18个元素,其中包括HTML的初始,相对简单的设计。除了超链接标签外,这些都受到SGMLGuid的强烈影响,SGMLGuID是内部标准的广义标记语言(SGML)基于CERN的文档格式。这些元素中有11个仍然存在于HTML 4中。
HTML是一种标记语言, Web浏览器用来将文本,图像和其他材料解释为可见或可见的网页。浏览器中定义了HTML标记每个项目的默认特性,并且可以通过网页设计师对CSS的额外使用来更改或增强这些特征。 1988年ISO技术报告TR 9537使用SGML的技术中提到了许多文本元素,该技术描述了早期文本格式格式语言的特征,例如1960年代初期为CTSS开发的径流命令所使用的功能(兼容的时间间隔)系统)操作系统。这些格式命令是从排列者使用的命令来手动格式化文档的。但是,广义标记的SGML概念基于元素(具有属性的嵌套注释范围),而不仅仅是打印效果,具有单独的结构和标记。 HTML已通过CSS逐渐朝这个方向移动。
Berners-Lee认为HTML是SGML的应用。它是由Internet工程工作组(IETF)正式定义的,1993年中期出版了第一个关于HTML规范的建议,即Berners-Lee和Dan Connolly的“超文本标记语言(HTML)” Internet草案,该互联网草稿包括一个SGML文档类型定义以定义语法。该草案在六个月后到期,但以其对NCSA Mosaic浏览器的自定义标签的认可,以嵌入在线图像,这反映了IETF在成功的原型上基于IETF的哲学。同样,戴夫·拉格特(Dave Raggett)的竞争性互联网草案“ HTML+(Hypertext Markup Format)从1993年底开始提出标准化已经实现的功能,例如表和填写表格。
HTML和HTML+在1994年初到期后,IETF创建了一个HTML工作组。 1995年,该工作组完成了“ HTML 2.0”,这是第一个HTML规范,旨在将其视为将来应依据的标准。
IETF主持下的进一步发展被竞争利益所停滞。自1996年以来,全球Web联盟(W3C)通过商业软件供应商的投入来维持HTML规范。 2000年,HTML成为国际标准( ISO / IEC 15445:2000)。 HTML 4.01于1999年底发布,直到2001年发布。 2014年10月28日。
HTML版本时间表
HTML 2
HTML 3
HTML 4
- 1997年12月18日
- HTML 4.0作为W3C推荐出版。它提供了三种变体:
- 严格,禁止弃用的元素
- 过渡性,其中允许弃用的元素
- 框架集,其中主要仅允许框架相关的元素。
- HTML 4.0最初以代码为“ Cougar”,采用了许多浏览器特定元素类型和属性,但也试图通过将其标记为对样式表的弃用来淘汰Netscape的视觉标记功能。 HTML 4是符合ISO 8879 - SGML的SGML应用程序。
- 1998年4月24日
- HTML 4.0通过次要编辑重新发行,而无需增加版本编号。
- 1999年12月24日
- HTML 4.01作为W3C推荐出版。它提供了与HTML 4.0相同的三种变体,其最后一个勘误是在2001年5月12日发布的。
- 2000年5月
- ISO/IEC 15445:2000(基于HTML 4.01严格的“ ISO HTML”)作为ISO/IEC国际标准出版。在ISO中,该标准位于ISO/IEC JTC 1/SC 34 (ISO/IEC联合技术委员会1,小组委员会34 - 文档说明和处理语言)的域中。
- 在HTML 4.01之后,由于基于XML的语言XHTML的开发占据了W3C的HTML工作组,因此没有新版本的HTML多年来。
HTML 5
- 2014年10月28日
- HTML5作为W3C推荐出版。
- 2016年11月1日
- HTML 5.1作为W3C推荐出版。
- 2017年12月14日
- HTML 5.2作为W3C推荐出版。
HTML草稿版本时间表
- 1991年10月
- HTML标签是一个非正式的CERN文档,列出了18个HTML标签,在公共场合首次提及。
- 1992年6月
- HTML DTD的第一份非正式草案,随后进行了七次修订(7月15日,8月6日,8月18日,11月17日,11月19日,11月20日,11月20日,11月22日)
- 1992年11月
- HTML DTD 1.1(基于RCS修订版本的第一个版本号,以1.1而不是1.0开始),非正式草稿
- 1993年6月
- IETF IIIR工作组作为互联网草案(标准的一个粗略建议)出版了超文本标记语言。一个月后,它被第二版所取代。
- 1993年11月
- HTML+由IETF作为Internet草案出版,是Hypertext Markup语言草案的一项竞争建议。它于1994年7月到期。
- 1994年11月
- IETF本身发布的HTML 2.0的初稿(修订00)(从修订02中称为“ HTML 2.0”),最终导致1995年11月的RFC 1866发表。
- 1995年4月(1995年3月撰写)
- 提议将HTML 3.0作为IETF的标准,但该提案在五个月后(1995年9月28日)未经进一步采取行动到期。它包括Raggett的HTML+建议中的许多功能,例如对表的支持,图形周围的文本流以及复杂的数学公式的显示。
- W3C开始开发自己的竞技场浏览器,作为HTML 3和级联样式表的测试床,但HTML 3.0并没有成功。该草案在150页上被认为是很大的,浏览器开发的步伐以及感兴趣的各方的数量已经超过了IETF的资源。当时包括Microsoft和Netscape在内的浏览器供应商选择实施HTML 3的草稿功能的不同子集,并向其引入自己的扩展。 (请参阅浏览器大战。)这些包括扩展以控制文档的风格方面,这与“学术工程社区的信念”相反,即文本颜色,背景纹理,字体大小和字体面孔肯定不在范围之内当他们唯一意图的语言是指定如何组织文档。”戴夫·拉格特(Dave Raggett)多年来一直是W3C研究员,他评论说:“在一定程度上,微软通过扩展HTML功能在网络上建立了业务。”

- 2008年1月
- HTML5由W3C出版作为工作草案。
- 尽管其语法与SGML的语法非常相似,但HTML5放弃了任何尝试成为SGML应用程序的尝试,除了基于替代XML的XHTML5序列化外,还明确定义了其自己的“ HTML”序列化。
- 2011 HTML5 - 上次通话
- 2011年2月14日,W3C将其HTML工作组的宪章扩展了HTML5的清晰里程碑。 2011年5月,工作组提高了HTML5为“最后一个通话”,这是向W3C内外社区的邀请,以确认规范的技术健全性。 W3C开发了一个全面的测试套件,以在2014年到2014年实现广泛的互操作性,这是推荐的目标日期。 2011年1月,Whatwg将其“ HTML5”生活水平重命名为“ HTML”。尽管如此,W3C仍在继续其发布HTML5的项目。
- 2012 HTML5 - 候选人建议
- 2012年7月,Whatwg和W3C决定了一定程度的分离。 W3C将继续进行HTML5规范工作,重点关注单个确定标准,该标准被Whatwg视为“快照”。 Whatwg组织将继续使用HTML5作为“生活水平”。生命标准的概念是它永远不会完成,并且始终正在更新和改进。可以添加新功能,但不会删除功能。
- 2012年12月,W3C将HTML5指定为候选建议。促进W3C建议的标准是“两个100%完整且完全可互操作的实现”。
- 2014 HTML5 - 建议的建议和建议
- 2014年9月,W3C将HTML5转移到了拟议的建议中。
- 2014年10月28日,HTML5作为稳定的W3C推荐发布,这意味着规范过程已经完成。
XHTML版本
XHTML是一种独立的语言,最初是使用XML 1.0的HTML 4.01进行重新制定。现在,它被称为“ HTML的XML语法”,不再被开发为单独的标准。
- XHTML 1.0于2000年1月26日作为W3C推荐出版,后来在2002年8月1日进行了修订和重新发布。它提供了与HTML 4.0和4.01相同的三种变化,并在XML中进行了重新汇总,并具有较小的限制。
- XHTML 1.1于2001年5月31日作为W3C推荐出版。它基于XHTML 1.0严格,但包括较小的更改,可以自定义,并使用W3C建议“ XHTML模块化”中的模块重新重新制定,该模块在上发布,该模块是在上发布的2001年4月10日。
- XHTML 2.0是一项工作草案,在2009年被放弃,支持HTML5和XHTML5的工作。 XHTML 2.0与XHTML 1.x不兼容,因此,将更准确地以XHTML启发的新语言来表征,而不是对XHTML 1.x的更新。
HTML出版物过渡到Whatwg
2019年5月28日,W3C宣布Whatwg将是HTML和DOM标准的唯一出版商。自2012年以来,W3C和Whatwg一直在发布竞争标准。虽然W3C标准与2007年Whatwg相同,但由于设计决策的不同,标准已经逐渐分歧。 Whatwg的“生活水平”已成为事实上的Web标准。
标记
HTML标记由几个关键组件组成,包括称为标签(及其属性),基于字符的数据类型,字符引用和实体参考。 HTML标签最常见的是成对的<h1>
和</h1>
,尽管有些代表空的元素,因此未配合<img>
。这样一对中的第一个标签是开始标签,第二个标签是结束标签(它们也称为“开放标签”和“关闭”标签)。
另一个重要组成部分是HTML文档类型声明,触发标准模式渲染。
以下是经典“ Hello,World!”的一个例子。程式:
<!DOCTYPE html>
<html>
<head>
<title>This is a title</title>
</head>
<body>
<div>
<p>Hello world!</p>
</div>
</body>
</html>
之间的文字<html>
和</html>
描述网页和文本<body>
和</body>
是可见的页面内容。标记文本<title>This is a title</title>
定义浏览器选项卡和窗口标题上显示的浏览器页面标题以及标签<div>
定义用于易于造型的页面的一个部门。之间<head>
和</head>
, A<meta>
元素可用于定义网页元数据。
文档类型声明<!DOCTYPE html>
用于HTML5。如果不包括声明,各种浏览器将恢复为“怪异模式”进行渲染。
元素

HTML文档表示嵌套HTML元素的结构。这些在文档中由HTML标签指示,因此以角度括号包围:因此:<p>
.
在简单的一般情况下,元素的程度由一对标签表示:一个“开始标签”<p>
和“结束标签”</p>
。元素的文本内容(如果有)位于这些标签之间。
标签还可以在开始和末端之间包含进一步的标签标记,包括标签和文本的混合物。这表明进一步的(嵌套)元素,作为父元素的子女。
起始标签还可以在标签中包含元素的属性。这些指示其他信息,例如文档中各部分的标识符,用于将样式信息绑定到文档介绍的标识符,以及某些标签(例如<img>
用于嵌入图像的格式中对图像资源的引用:<img src="example.com/example.jpg">
一些元素,例如折线断路<br />
, 或者<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>
<link rel="stylesheet" href="stylebyjimbowales.css" /> <!-- Imports Stylesheets -->
</head>
标题
HTML标题是用<h1>
到<h6>
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>
效果是:
CSS可以大大改变渲染。
段落:
<p>Paragraph 1</p> <p>Paragraph 2</p>
线路断裂
<br />
。和...之间的不同<br />
和<p>
就是它<br />
打破一条线而不改变页面的语义结构,而<p>
部分将页面分为段落。元素<br />
是一个空的元素,尽管它可能具有属性,但它可能不需要内容,并且可能没有结束标签。
<p>This <br /> is a paragraph <br /> with <br /> line breaks</p>
这是HTML中的链接。为了创建一个链接<a>
使用标签。这href
属性包含链接的URL地址。
<a href="https://www.wikipedia.org/">A link to Wikipedia!</a>
输入
用户可以通过多种方式给出输入,例如:
<input type="text" /> <!-- This is for text input -->
<input type="file" /> <!-- This is for uploading files -->
<input type="checkbox" /> <!-- This is for checkboxes -->
评论:
<!-- This is a comment -->
注释可以帮助您理解标记,并且不会在网页中显示。
HTML中使用了几种类型的标记元素:
- 结构标记表示文本的目的
- 例如,
<h2>Golf</h2>
将“高尔夫”作为二级标题。结构标记并不表示任何特定的渲染,但是大多数Web浏览器具有用于元素格式的默认样式。内容可以使用级联样式表(CSS)进一步设计。 - 表格标记表示文本的外观,无论其目的如何
- 例如,
<b>bold text</b>
指示视觉输出设备应以粗体文本呈现“大胆”,但要稍微指示无法执行此操作的设备(例如大声读取文本的听觉设备)。在两者的情况下<b>bold text</b>
和<i>italic text</i>
,还有其他元素可能具有等效的视觉效果图,但本质上更语义,例如<strong>strong text</strong>
和<em>emphasized text</em>
分别。更容易看到听觉用户代理应该如何解释后两个元素。但是,它们并不等于其介绍的对应物:例如,屏幕读取器强调书名的名称是不可取的,但是在屏幕上,这种名称将被斜体化。在HTML 4.0规范下,大多数表演标记元素已弃用,而有利于使用CSS进行样式。 - 超文本标记将文档的一部分用于指向其他文档的链接
- 锚元素在文档及其中创建超链接
href
属性设置链接的目标URL 。例如,HTML标记<a href="https://en.wikipedia.org/">Wikipedia</a>
,将“ Wikipedia ”一词作为超链接。为了将图像作为超链接,img
元素被插入内容a
元素。喜欢br
,img
是具有属性但没有内容或关闭标签的空元素。<a href="https://example.org"><img src="image.gif" alt="descriptive text" width="50" height="50" border="0"></a>
.
属性
元素的大多数属性是名称 - 值对,由=
并在元素名称之后的元素的开始标签中写入。该值可以包含在单引号或双引号中,尽管由某些字符组成的值可以在HTML中无引用(而不是XHTML)。离开属性值未引用被认为是不安全的。与名称值对属性相比ismap
属性img
元素。
许多元素中可能出现几种常见属性:
- 这
id
属性为元素提供了范围内的唯一标识符。这用于识别该元素,以便样式表可以更改其表现属性,并且脚本可以更改,动画或删除其内容或演示文稿。附加到页面的URL上,它为该元素提供了全球唯一的标识符,通常是页面的子部分。例如,ID中的ID“属性”https://en.wikipedia.org/wiki/HTML#Attributes
. - 这
class
属性提供了一种分类相似元素的方法。这可以用于语义或演示目的。例如,HTML文档可能会使用该名称使用<class="notation">
为了表明所有具有此类值的元素都从属文档的主要文本。在演讲中,这些元素可能会聚集在一起,并在页面上以脚注为脚注,而不是出现在HTML源出现的地方。类属性在微符号中使用。可以指定多个类值;例如<class="notation important">
将元素放入notation
和important
课程。 - 作者可以使用
style
属性将介绍属性分配给特定元素。使用元素是更好的做法id
或者class
从样式表中选择元素的属性,尽管有时对于简单,特定或临时样式来说可能太麻烦了。 - 这
title
属性用于将亚文本解释附加到元素上。在大多数浏览器中,此属性显示为工具提示。 - 这
lang
属性标识了元素内容的自然语言,这可能与文档其余部分不同。例如,在英语文档中:<p>Oh well, <span lang="fr">c'est la vie</span>, as they say in France.</p>
缩写元素,abbr
,可用于证明其中一些属性:
<abbr id="anId" class="jargon" style="color:purple;" title="Hypertext Markup Language">HTML</abbr>
此示例显示为HTML ;在大多数浏览器中,指向光标缩写应显示标题文本“超文本标记语言”。
大多数元素采用与语言相关的属性dir
指定文本方向,例如“ RTL”,以左右的文本,例如阿拉伯语,波斯语或希伯来语。
性格和实体参考
从4.0版开始,HTML定义了一组252个字符实体引用和一组1,114,050数字字符引用,这两者都允许通过简单标记而不是字面意思来编写单个字符。字面角色及其标记对应物被认为是等效的,并且呈现相同。
以这种方式“逃脱”字符的能力允许角色<
和&
(写为<
和&
分别解释为字符数据,而不是标记。例如,字面上的<
通常表示标签的开始,并且&
通常表示字符实体参考或数字字符参考的开始;将其写成&
或者&
或者&
允许&
要包含在元素的内容或属性的值中。双引号字符("
),如果不用用来引用属性值,也必须逃脱为"
或者"
或者"
当它出现在属性值本身中时。同等地,单号Quote字符('
),如果不用用来引用属性值,也必须逃脱为'
或者'
(或为'
在html5或xhtml文档中)当它出现在属性值本身中时。如果文档作者忽略了逃脱此类角色的需求,则某些浏览器可能非常宽容,并尝试使用上下文来猜测其意图。结果仍然是无效的标记,这使得该文档对其他浏览器和其他用户代理的访问较低,例如以搜索和索引目的将文档解析。
逃脱还允许在元素和属性内容中表示不容易键入或在文档字符编码中不可用的字符。例如,急性浓缩e
(é
),通常仅在西欧和南美键盘上找到的角色,可以写在任何HTML文件中作为实体参考é
或作为数字引用é
或者é
,使用所有键盘上可用的字符,并在所有字符编码中受支持。 UTF-8等Unicode字符编码与所有现代浏览器兼容,并允许直接访问世界写作系统的几乎所有字符。
命名 | 十进制 | 十六进位 | 结果 | 描述 | 笔记 |
---|---|---|---|---|---|
&
|
&
|
&
|
&
|
andand | |
<
|
<
|
<
|
<
|
少于 | |
>
|
>
|
>
|
>
|
比...更棒 | |
"
|
"
|
"
|
"
|
双引号 | |
'
|
'
|
'
|
'
|
单报价 | |
|
 
|
 
|
|
非破坏空间 | |
©
|
©
|
©
|
©
|
版权 | |
®
|
®
|
®
|
®
|
注册商标 | |
†
|
†
|
†
|
†
|
匕首 | |
‡
|
‡
|
‡
|
‡
|
双匕首 | 名称是案例敏感的 |
‡
|
‡
|
‡
|
‡
|
双匕首 | 名称可能具有同义词 |
™
|
™
|
™
|
™
|
商标 |
数据类型
HTML为元素内容定义了几种数据类型,例如脚本数据和样式表数据,以及属性值的大量类型,包括ID,名称,URI,数字,数字,长度,语言,语言,媒体描述符,颜色,颜色,字符编码,日期,和时代,依此类推。所有这些数据类型都是字符数据的专业知识。
文档类型声明
HTML文档必须从文档类型声明开始(非正式地,“ Doctype”)。在浏览器中,Doctype有助于定义渲染模式 - 特别是使用怪异模式。
Doctype的最初目的是基于文档类型定义(DTD),通过SGML工具对HTML文档进行解析和验证。 Doctype引用的DTD包含一种可读的语法,该语法指定了符合此类DTD的文档的允许和禁止的内容。另一方面,浏览器不会实现HTML作为SGML的应用,因此不会读取DTD。
HTML5不能定义DTD;因此,在HTML5中,Doctype声明更简单,更短:
<!DOCTYPE html>
HTML 4 Doctype的一个例子
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "https://www.w3.org/TR/html4/strict.dtd">
该声明引用了HTML 4.01的“严格”版本的DTD。基于SGML的验证器读取DTD,以正确解析文档并执行验证。在现代浏览器中,有效的Doctype激活标准模式,而不是怪异模式。
此外,HTML 4.01提供过渡和框架DTD,如下所述。过渡类型是最包容性的,其中包含当前标签以及较旧的或“弃用”的标签,严格的DTD不包括不弃用的标签。框架集具有在页面上制作框架以及过渡类型中包含的标签所需的所有标签。
语义HTML
语义HTML是编写HTML的一种方式,该方式强调了编码信息在其演示中的含义(Look)。 HTML从其成立开始就包括语义标记,但还包括呈现标记,例如<font>
,<i>
和<center>
标签。还有语义中性的DIV和跨度标签。自1990年代后期以来,当级联样式表开始在大多数浏览器中工作时,人们一直鼓励Web作者避免使用呈现HTML标记,以期将内容和演示文稿分开。
在2001年对语义网的讨论中,蒂姆·伯纳斯·李(Tim Berners-Lee)和其他人举例说明了智能软件“代理”的方式,有一天可以自动爬网,并找到,过滤和关联以前无关的,发表的事实,以使人类的利益受益。用户。即使现在,这些代理也不是很普遍的,但是Web 2.0 ,混搭和价格比较网站的某些想法可能会接近。这些Web应用程序混合动力车与Berners-Lee的语义代理之间的主要区别在于,当前信息的汇总和杂交通常是由Web开发人员设计的,Web开发人员已经知道Web位置以及他们希望希望的特定数据的API语义土豆泥,比较和组合。
网络代理的一种重要类型,它会自动爬网和读取网页,而没有事先了解其可能发现的内容,是Web轨道搜索器或搜索引擎蜘蛛。这些软件代理依赖于他们发现的网页的语义清晰度,因为它们使用各种技术和算法每天读取和索引数百万个网页,并为网络用户提供搜索设施,而无需大大降低万维网的实用性。
为了使搜索引擎蜘蛛能够评估他们在HTML文档中找到的文本的重要性,以及对于创建混搭和其他混合动力车以及开发的更多自动化代理的人,以及其中存在的语义结构, HTML需要广泛而均匀地应用以提出已发表文本的含义。
当前的HTML和XHTML建议中弃用了表格标记标签。以前版本的HTML的大多数演示特征不再允许,因为它们会导致可访问性较差,站点维护成本较高以及更大的文档尺寸。
良好的语义HTML还改善了Web文档的可访问性(另请参见Web内容可访问性指南)。例如,当屏幕读取器或音频浏览器可以正确确定文档的结构时,当正确标记时,它不会通过读取重复或无关的信息来浪费视力障碍用户的时间。
送货
HTML文档可以通过与任何其他计算机文件相同的方式交付。但是,它们通常是由HTTP从Web服务器或电子邮件传递的。
http
万维网主要由使用超文本传输协议(HTTP)从Web服务器传输到Web浏览器的HTML文档组成。但是,除HTML外,HTTP还用于提供图像,声音和其他内容。为了允许Web浏览器知道如何处理其收到的每个文档,其他信息与文档一起传输。此元数据通常包括MIME类型(例如,文本/HTML或Application/XHTML+XML )和字符编码(请参阅html中的字符编码)。
在现代浏览器中,使用HTML文档发送的MIME类型可能会影响文档最初解释的方式。带有XHTML MIME类型发送的文档预计将是XHTML良好的XML;语法错误可能导致浏览器无法渲染它。使用HTML MIME类型发送的同一文档可能会成功显示,因为某些浏览器对HTML更宽松。
W3C建议指出,遵循建议附录C中规定的指南的XHTML 1.0文档可以用任何MIME类型标记。 XHTML 1.1还指出,XHTML 1.1文档应标记在任何一种MIME类型上。
HTML电子邮件
大多数图形电子邮件客户端允许使用HTML的子集(通常定义不明)来提供格式和语义标记,而纯文本则无法提供。这可能包括印刷信息,例如彩色标题,强调和引用文本,内联图像和图表。许多这样的客户既包括用于撰写HTML电子邮件的GUI编辑器,也包括用于显示它们的渲染引擎。 Use of HTML in e-mail is criticized by some because of compatibility issues, because it can help disguise phishing attacks, because of accessibility issues for blind or visually impaired people, because it can confuse spam filters and because the message size is larger than plain文字.
命名约定
包含HTML的文件最常见的文件名扩展名是.html 。对此的常见缩写是.htm ,其起源是因为某些早期的操作系统和文件系统(例如DOS)以及脂肪数据结构施加的限制,将文件扩展限制为三个字母。
HTML应用程序
HTML应用程序(HTA; File Extension .HTA )是Microsoft Windows应用程序,它在浏览器中使用HTML和Dynamic HTML来提供应用程序的图形接口。常规的HTML文件仅限于Web浏览器安全性的安全模型,仅与Web服务器通信,并仅操纵网页对象和网站cookie 。 HTA作为一个完全受信任的应用程序运行,因此具有更多特权,例如对文件和Windows注册表条目的创建/编辑/删除。由于它们在浏览器的安全模型之外运行,因此无法通过HTTP执行HTA,但必须下载(就像EXE文件一样)并从本地文件系统执行。
HTML4变化
自成立以来,HTML及其相关协议就相对较快地获得了接受。但是,该语言的早期没有明确的标准。尽管它的创建者最初将HTML视为一种语义语言,但实际用途将许多演示元素和属性推向了该语言,这主要是由各种浏览器供应商驱动的。 HTML围绕的最新标准反映了克服语言有时混乱的发展的努力,并为建立有意义和良好表现的文件创造合理的基础。为了将HTML恢复其作为语义语言的角色, W3C开发了CSS和XSL等风格语言,以承担演示的负担。同时,HTML规范在演讲元素中缓慢地遏制。
有两个轴分化了当前指定的HTML的各种变化:基于SGML的HTML与基于XML的HTML(称为XHTML)在一个轴上,以及在另一个轴上与框架相比,严格与过渡(松散)与框架。
基于SGML与基于XML的HTML
最新的HTML规范中的一个区别在于基于SGML的规范与基于XML的规范之间的区别。基于XML的规范通常称为XHTML,以将其与更传统的定义区分开。但是,即使在XHTML指定的HTML中,根元素名称仍然是“ HTML”。 W3C打算XHTML 1.0与HTML 4.01相同,除非XML在更复杂的SGML上的限制需要解决方法。由于XHTML和HTML密切相关,因此有时并行记录它们。在这种情况下,一些作者将这两个名称混合在一起,为(X)HTML或X(HTML)。
像HTML 4.01一样,XHTML 1.0具有三个子特异性:严格,过渡和框架集。
除了文档的不同开头声明外,HTML 4.01和XHTML 1.0文档(在相应的DTD中)之间的差异很大程度上是句法。 HTML的基本语法允许XHTML所不具有的许多快捷方式,例如具有可选打开或关闭标签的元素,甚至是必须没有端标签的空元素。相比之下,XHTML要求所有元素具有开放标签和一个关闭标签。但是,XHTML还引入了一个新的快捷方式:可以在同一标签中打开并关闭XHTML标签,并在标签结束前加入斜杠:<br/>
。此速记的引入(在HTML 4.01的SGML声明中未使用)可能会使早期不熟悉此新约定的软件感到困惑。解决此问题的方法是在关闭标签之前包括一个空间:这样:<br />
.
要了解HTML和XHTML之间的细微差异,请考虑粘附于附录C(见下文)中有效且形成良好的XHTML 1.0文档的转换。进行此翻译需要以下步骤:
- 元素的语言应用
lang
属性而不是xhtmlxml:lang
属性。 XHTML使用XML的内置语言定义功能属性。 - 删除XML名称空间(
xmlns=URI
)。 HTML没有名称空间的设施。 - 将文档类型声明从XHTML 1.0更改为HTML 4.01。 (有关进一步说明,请参见DTD部分)。
- 如果存在,请删除XML声明。 (通常是:
<?xml version="1.0" encoding="utf-8"?>
). - 确保将文档的MIME类型设置为
text/html
。对于HTML和XHTML,这来自HTTPContent-Type
服务器发送的标头。 - 将XML的空元素语法更改为HTML样式空元素(
<br />
到<br>
).
这些是将文档从XHTML 1.0转换为HTML 4.01所需的主要更改。要从HTML转换为XHTML,还需要添加任何省略的打开或关闭标签。无论是在HTML还是XHTML中进行编码,最好始终在HTML文档中包含可选标签,而不是记住可以省略哪些标签。
良好的XHTML文档遵守XML的所有语法要求。有效的文档遵守XHTML的内容规范,该文档描述了文档结构。
W3C建议进行几项约定,以确保HTML和XHTML之间的易于迁移(请参阅HTML兼容性指南)。以下步骤只能应用于XHTML 1.0文档:
- 两者都包括
xml:lang
和lang
分配语言的任何元素上的属性。 - 仅适用于HTML中指定为空的元素的空元素语法。
- 在空元素标签中包括一个额外的空间:例如
<br />
代替<br />
. - 包括允许内容但空白的元素的显式关闭标签(例如,
<div></div>
, 不是<div />
). - 省略XML声明。
通过仔细遵循W3C的兼容性指南,用户代理应该能够平均解释该文档为HTML或XHTML。对于XHTML 1.0并以这种方式兼容的文档,W3C允许将其作为HTML(使用Atext/html
MIME类型),或作为XHTML(带有application/xhtml+xml
或者application/xml
MIME类型)。当作为XHTML提供时,浏览器应使用XML解析器,该解析器严格遵守XML规范以解析文档内容。
过渡与严格
HTML 4定义了该语言的三个不同版本:严格,过渡(曾经称为松散)和框架集。严格的版本旨在用于新文档,被认为是最佳实践,而过渡和框架版本的开发是为了使符合较旧的HTML规格的过渡文档更容易,或者不符合任何规格,即HTML 4的版本。过渡和框架版本允许进行介绍标记,这在严格版本中省略了。取而代之的是,鼓励级联样式的表格改善HTML文档的呈现。由于XHTML 1仅定义了HTML 4定义的语言的XML语法,因此XHTML 1也适用于XHTML 1。
过渡版本允许词汇的以下部分,这些部分未包含在严格版本中:
- 宽松的内容模型
- 内联元素和纯文本直接允许:
body
,blockquote
,form
,noscript
和noframes
- 内联元素和纯文本直接允许:
- 演示文稿相关的要素
- 下划线(
u
)(弃用。可以将访客与超链接混淆。) - 罢工(
s
) -
center
(已弃用。改用CSS。) -
font
(已弃用。改用CSS。) -
basefont
(已弃用。改用CSS。)
- 下划线(
- 与演示有关的属性
-
background
(弃用。改用CSS。)和bgcolor
(已弃用。使用CSS。)body
(根据W3C。所需的元素)元素。 -
align
(弃用。使用CSS。)属性div
,form
, 段落 (p
)和标题(h1
...h6
)元素 -
align
(已弃用。使用CSS。),,,noshade
(已弃用。使用CSS。),,,size
(弃用。改用CSS。)和width
(已弃用。使用CSS。)hr
元素 -
align
(已弃用。使用CSS。),,,border
,vspace
和hspace
属性img
和object
(注意:object
元素仅在Internet Explorer(来自主要浏览器)元素中支持 -
align
(弃用。使用CSS。)属性legend
和caption
元素 -
align
(弃用。改用CSS。)和bgcolor
(弃用。使用CSS。)table
元素 -
nowrap
(过时的),bgcolor
(已弃用。使用CSS。),,,width
,height
在td
和th
元素 -
bgcolor
(弃用。使用CSS。)属性tr
元素 -
clear
(过时)属性br
元素 -
compact
属性dl
,dir
和menu
元素 -
type
(已弃用。使用CSS。),,,compact
(弃用。改用CSS。)和start
(已弃用。使用CSS。)ol
和ul
元素 -
type
和value
属性li
元素 -
width
属性pre
元素
-
- 过渡规范的其他元素
-
menu
(已弃用。使用CSS。 -
dir
(已弃用。使用CSS。)列表(尽管建议使用无序列表,但没有替代) -
isindex
(已弃用。)(元素需要服务器端支持,通常添加到文档服务器端,form
和input
元素可以用作替代品) -
applet
(弃用。使用object
代替元素。)
-
- 这
language
(过时)脚本元素上的属性(冗余type
属性)。 - 框架相关实体
iframe
noframes
-
target
(在map
,link
和form
元素。)属性a
,客户端图像映射(map
),link
,form
和base
元素
框架版本包含过渡版本中的所有内容,以及frameset
元素(使用而不是body
)和frame
元素。
框架与过渡
除了上述过渡差外,框架集规范(无论是XHTML 1.0还是HTML 4.01)指定了一个不同的内容模型,带有不同的内容模型frameset
更换body
,其中包含frame
元素或可选noframes
与body
.
规范版本的摘要
正如该列表所表明的那样,规格的宽松版本用于旧版支持。但是,与普遍的误解相反,XHTML的转移并不意味着要删除这种遗产支持。相反,XML中的X代表可扩展,W3C正在模块化整个规范,并将其打开至独立的扩展。从XHTML 1.0到XHTML 1.1移动的主要成就是整个规范的模块化。 HTML的严格版本通过一组模块化扩展在XHTML 1.1中部署到基本XHTML 1.1规范中。同样,寻找松散(过渡)或框架的人的某人会发现类似的扩展XHTML 1.1支持(其中大部分包含在旧模块中)。模块化还允许在自己的时间表上开发单独的功能。因此,例如,XHTML 1.1将允许更快地迁移到新兴的XML标准,例如MathML (基于XML的介绍和语义数学语言)和Xforms (一种新的高级Web形式技术,可以替代现有的HTML表单。
总而言之,HTML 4规范主要在所有各种HTML实现中都重新定义为基于SGML的单个清晰书面规范。 XHTML 1.0,将此规范移植到新的XML定义规范中。接下来,XHTML 1.1利用XML的可扩展性质并将整个规范模块化。 XHTML 2.0旨在以基于标准体的方法为规范添加新功能的第一步。
Whatwg HTML与HTML5
由Whatwg开发的HTML生活水平是官方版本,而W3C HTML5不再与Whatwg分开。
Wysiwyg编辑
有一些Wysiwyg编辑器(您看到的是您得到的),其中用户使用图形用户界面(GUI)(GUI)在HTML文档中显示所有内容,通常类似于文字处理器。编辑器呈现文档而不是显示代码,因此作者不需要对HTML的广泛了解。
Wysiwyg编辑模型受到了批评,这主要是因为生成的代码的质量较低。有声音提倡改变Wysiwym模型(您所看到的是您的意思)。
Wysiwyg编辑仍然是一个有争议的话题,因为他们的缺陷如下:
- 主要依靠布局而不是含义,通常使用不会传达预期含义的标记,而只是复制布局。
- 通常会产生极端的冗长和冗余代码,而无法利用HTML和CSS的级联性质。
- 通常会产生非语法标记,称为标签汤或语义上不正确的标记(例如
<em>
用于斜体)。 - 由于HTML文档中的大量信息不在布局中,因此该模型因其“您所看到的只是您所获得的”而受到批评。