HTML
维基百科,自由的百科全书
HTML(-{A|zh-cn:超文本置标语言;zh-tw:超文件標示語言}-,HyperText Markup Language)是为网页创建和其它可在网页浏览器中看到的信息设计的一种置标语言。HTML被用来结构化信息——例如标题、段落和列表等等,也可用来在一定程度上描述文档的外观和语义。由蒂姆·伯纳斯-李给出原始定义,由IETF用简化的SGML(标准通用置标语言)语法进行进一步发展的HTML后来成为国际标准,由万维网联盟(W3C)维护。
包含HTML内容的文件最常用的扩展名是.html,但是像DOS这样的旧操作系统限制扩展名为最多3个字符,所以.htm扩展名也被使用。虽然现在使用的比较少一些了,但是.htm扩展名仍旧普遍被支持。編者可以用任何文本编辑器或所见即所得的HTML编辑器来编辑HTML文件。
早期的HTML语法被定义成较松散的规则以有助于不熟悉网络出版的人采用。网页浏览器接受了这个现实,并且可以显示语法不严格的网页。随着时间的流逝,官方标准渐渐趋于严格的语法,但是浏览器继续显示一些远称不上合乎标准的HTML。使用XML的严格规则的XHTML(可扩展超文本置标语言)是W3C计划中的HTML的接替者。虽然很多人认为它已经成为当前的HTML标准,但是它实际上是一个独立的、和HTML平行发展的标准。W3C目前的建议是使用XHTML 1.1、 XHTML 1.0或者HTML 4.01进行网络出版。
目录 |
[编辑] 标准的版本历史
- 超文本置标语言(第一版)——在1993年6月发为互联网工程工作小组 (IETF)工作草案发布(并非标准).
- HTML 2.0——1995年11月作为RFC 1866发布,在RFC 2854于2000年6月发布之后被宣布已经过时
- HTML 3.2——1996年1月14日,W3C推荐标准
- HTML 4.0——1997年12月18日,W3C推荐标准
- HTML 4.01(微小改进)——1999年12月24日,W3C推荐标准
- ISO/IEC 15445:2000(“ISO HTML”)——2000年5月15日发布,基于严格的HTML 4.01语法,是国际标准化组织和国际电工委员会的标准
- XHTML 1.0——发布于2000年1月26日,是W3C推荐标准,后来经过修订于2002年8月1日重新发布。
- XHTML 1.1, 于2001年5月31日发布
- (XHTML 2.0, W3C工作草案)
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元素的类型:
- 结构性 标记,描述文字的意图,例如
-
<h2>Golf</h2>
- 指明浏览器将"Golf"显示为二级标题。结构性标记并未指示浏览器的显示方式,但是大多数浏览器标准化了这些元素的显示,例如默认情况下上述的标题会被显示为较大的粗体文字。参见层叠样式表 (CSS)。比较常用的结构性标记有:
-
- html元素 标记HTML内容的开始和结束。
- head元素 标记HTML文件头,包含不在正文中显示的关键字、标题、脚本等等。
- title元素 标记HTML文件的标题。
- body元素 标记HTML文件正文的开始和结束。
- 呈现性标记。描述文字的外观,例如
-
<b>boldface</b>
- 将"boldface"显示为粗体文字。但是为了统一网站的风格,很多网络出版者使用CSS而不是重复使用呈现性标记。对于
<b>bold</b>
和<i>italic</i>
,也有通常更加明确的等价呈现性标记,例如<strong>strong emphasis</strong>
和<em>emphasis</em>
。
- 超文本标记。将文档的一部分关联到其他文档。例如
- 除了HTML内容之外,经常也有人在代码中加入注释:
-
<!-- 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也提供过渡和框架集文件类型描述。过渡文件类型描述是向严格的文件类型描述过渡的缓冲,而框架集文件类型描述则针对包含框架元素的网页。
[编辑] 分离样式和内容
网络开发社区的努力导致一种新的网页编写潮流,XHTML就是一个典型。标准着重于描述网页结构的元素,例如标题、段落、引言和表格,而不是那些用于呈现的元素,例如<font>、 <b> (粗体)和<i> (斜体)。在一些HTML变体中这些元素甚至被禁用,例如HTML 4.01 的严格版本。CSS提供了一种分离HTML结构和内容呈现的方式:把所有呈现代码移到单独的CSS文件。
[编辑] 使用HTTP发布HTML
万维网主要由从服务器通过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邮件时可能执行恶意代码
因为这些原因,很多新闻组和邮件列表要么截断信件的HTML部分,要么只接受纯文本版本部分的邮件,要么拒绝接收HTML邮件。
[编辑] HTML超文本格式
HTML是一个相对比较弱的超文本实现。早期超文本系统具有具有类型的链接、跨越包含和来源跟踪这样的属性。另一个现在缺乏支持的特性是粗链路。
直到不久之前,一些早期HTML版本中的超文本特性一直被大多数浏览器忽略,例如link元素和可编辑的网页。
有时网络服务或者浏览器厂商也认识到这些特性。例如,现在的wiki和nuke社会网络软件允许浏览者编辑访问的网页。