1982 年,Tim Berners-Lee 为使世界各地的物理学家能够方便的进行合作研究,建立了使用于其系统的 HTML。Tim Berners-Lee 设计的 HTML 以纯文字格式为基础,可以任何文字编辑器处理,最初仅有少量标记(TAG)而易于掌握运用。随着 HTML 使用率的增加,人们不满足只能看到文字。1993 年,还是大学生的 Marc Andreessen 在他的 Mosaic 浏览器加入 <img> 标记,从此可以在 Web 页面上浏览图片。但人们认为仅有图片还是不够,希望可将任何形式的媒体加到网页上。因此 HTML 不断地扩充和发展。
HTML没有1.0版本是因为当时有很多不同的版本。有些人认为蒂姆·伯纳斯-李的版本应该算初版,这个版本没有IMG元素。当时被称为HTML+ 的后续版的开发工作于1993年开始,最初是被设计成为“HTML的一个超集”。第一个正式规范在为了和当时的各种HTML标准区分开来,使用了2.0作为其版本号。HTML+的发展继续下去,但是它从未成为标准。
HTML3.0规范是由当时刚成立的W3C于1995年3月提出,提供了很多新的特性,例如表格、文字绕排和复杂数学元素的显示。虽然它是被设计用 来兼容2.0版本的,但是实现这个标准的工作在当时过于复杂,在草案于1995年9月过期时,标准开发也因为缺乏浏览器支持而中止了。3.1版从未被正式 提出,而下一个被提出的版本是开发代号为Wilbur 的HTML 3.2,去掉了大部分3.0中的新特性,但是加入了很多特定浏览器,例如Netscape 和Mosaic 的元素和属性。HTML对数学公式的支持最后成为另外一个标准MathML 。
HTML 4.0同样也加入了很多特定浏览器的元素和属性,但是同时也开始“清理”这个标准,把一些元素和属性标记为过时 的,建议不再使用它们。HTML的未来和CSS 结合会更好。
HTML 5 目前仍为草案,并已被W3C接纳。
<h2>Golf</h2>
<b>boldface</b>
<b>bold</b>
和
<i>italic</i>
,也有通常更加明确的等价呈现性标记,例如
<strong>strong emphasis</strong>
和
<em>emphasis</em>
。
<a href="http://wikipedia.org/">Wikipedia</a>
<!-- This is a comment -->
<frameset> </frameset>
後加上rows="100,*"
,这代表网页会开启一个上下分割网页的框架,而上框架网页的高度是100px。。加上cols="100,*"代表网页左右分割,左框架的网页阔度是100px。
<framename="left" src="left.html" />
</frameset>
前。
每个标记都有特定的属性。由于对标准的支持度相差很大,一些标记和属性可能只被部分浏览器支持。
为了指明文档使用的 HTML 标准,所有HTML文档应该以文件类型声明 (DOCTYPE)开头,引用一个文件类型描述 。举例来说:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
这个声明断言文档服从 HTML 4.01 的严格文件类型描述,这个标准是严格结构化的,使用 CSS 来做格式化。有时是否存在一个合适的文件类型描述会影响一个浏览器显示网页的方式。
除了 HTML 4.01 的严格文件类型描述之外,HTML 4.01 也提供过渡和框架集 文件类型描述。
过渡文件类型描述 是向严格的文件类型描述过渡的缓冲。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
而框架集文件类型描述 则针对包含框架元素 的网页。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
网络开发社区的努力导致一种新的网页编写潮流,XHTML 就 是一个典型。标准着重于描述网页结构的元素,例如标题、段落、引言和表格,而不是那些用于呈现的元素,例如<font>、 <b>(粗体)和<i>(斜体)。在一些HTML变体中这些元素甚至被禁用,例如HTML 4.01 的严格版本。CSS提供了一种分离HTML结构和内容呈现的方式:把所有呈现代码移到单独的CSS文件。
万维网 主要由从服务器通过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的语法检查更加松懈些。
如果MIME 类型不被识别为HTML,那么浏览器不应该试图将文档呈现为HTML,即使文档以正确的文档类型声明开头也是这样;尽管如此,一些浏览器还是检查文档内容或其URL来判断其文件类型。因为可能造成的安全性问题,这种行为不被提倡。即使以不遵守标准著称的Internet Explorer 也基本放弃了这种做法。
一些图形模式下的电子邮件客户端支持HTML格式的邮件。很多支持一个图形模式下的HTML邮件编辑器,以及一个HTML邮件阅览器。因为一些问题,HTML邮件的使用有争议。HTML邮件的主要优点是可以使用呈现性元素来加强邮件的视觉效果,但是缺陷也很多,例如
因为这些原因,很多新闻组 和邮件列表 要么截断信件的HTML部分,要么只接受纯文本版本部分的邮件,要么拒绝接收HTML邮件。
HTML是一个相对比较弱的超文本实现。早期超文本系统具有具有类型的链接 、跨越包含 和来源跟踪 这样的属性。另一个现在缺乏支持的特性是粗链路 。
直到不久之前,一些早期HTML版本中的超文本特性一直被大多数浏览器忽略,例如link元素 和可编辑的网页。
有时网络服务或者浏览器厂商也认识到这些特性。例如,现在的wiki 和nuke 社会网络软件允许浏览者编辑访问的网页。