|
|
(未显示1个用户的2个中间版本) |
第1行: |
第1行: |
− | '''超文本置标语言'''([[英文]]:'''HyperText Markup Language''',简称为'''HTML''')是为「[[网页]]创建和其它可在[[网页浏览器]]中看到的信息」设计的一种[[置标语言]]。HTML被用来结构化信息——例如标题、段落和列表等等,也可用来在一定程度上描述文档的外观和[[语义]]。由[[蒂姆·伯纳斯-李]]给出原始定义,由[[IETF]]用简化的[[SGML]](标准通用置标语言)语法进行进一步发展的HTML,后来成为国际标准,由[[万维网联盟]](W3C)维护。
| |
| | | |
− | 包含HTML内容的文件最常用的扩展名是<tt>.html</tt>,但是像[[DOS]]这样的旧[[操作系统]]限制[[扩展名]]为最多3个字符,所以<tt>.htm</tt>扩展名也被使用。虽然现在使用的比较少一些了,但是<tt>.htm</tt>扩展名仍旧普遍被支持。編者可以用任何[[文本编辑器]]或[[所见即所得]]的[[HTML编辑器]]来编辑HTML文件。
| |
− |
| |
− | 早期的HTML语法被定义成较松散的规则,以有助于不熟悉网络出版的人采用。网页浏览器接受了这个现实,并且可以显示语法不严格的网页。随着时间的流逝,官方标准渐渐趋于严格的语法,但是浏览器继续显示一些远称不上合乎标准的HTML。使用[[XML]]的严格规则的[[XHTML]](可扩展超文本置标语言)是[[W3C]]计划中的HTML的接替者。虽然很多人认为它已经成为''当前''的HTML标准,但是它实际上是一个独立的、和HTML平行发展的标准。[[W3C]]目前的建议是使用XHTML 1.1、XHTML 1.0或者HTML 4.01进行网络出版。
| |
− |
| |
− | == 发展历史 ==
| |
− | {{HTML}}
| |
− | 1982年,Tim Berners-Lee為使世界各地的物理學家能夠方便的進行合作研究,建立了使用於其系統的HTML。Tim Berners-Lee設計的HTML以純文字格式為基礎,可以任何文字編輯器處理,最初僅有少量標記(TAG)而易於掌握運用。隨著HTML使用率的增加,人們不滿足-{只}-能看到文字。1993年,還是大學生的Marc Andreessen在他的Mosaic瀏覽器加入<img>標記,從此可以在Web頁面上瀏覽圖片。但人們認為僅有圖片還是不夠,希望可將任何形式的媒體加到網頁上。因此HTML不斷地擴充和發展。
| |
− |
| |
− | == 标准的版本历史 ==
| |
− |
| |
− | ==== HTML ====
| |
− | * [http://www.w3.org/MarkUp/draft-ietf-iiir-html-01.txt 超文本置标语言(第一版)]——在1993年6月发为[[互联网工程工作小组]]([[IETF]])工作草案发布(并非标准).
| |
− | * [http://www.ietf.org/rfc/rfc1866.txt HTML 2.0]——[[1995年]]11月作为[[RFC]] 1866发布,在RFC 2854于2000年6月发布之后被宣布已经过时
| |
− | * [http://www.w3.org/TR/REC-html32 HTML 3.2]——[[1996年]][[1月14日]],W3C推荐标准
| |
− | * [http://www.w3.org/TR/REC-html40 HTML 4.0]——[[1997年]][[12月18日]],W3C推荐标准
| |
− | * [http://www.w3.org/TR/html401 HTML 4.01](微小改进)——[[1999年]][[12月24日]],W3C推荐标准
| |
− | * [http://www.purl.org/NET/ISO+IEC.15445/15445.html ISO/IEC 15445:2000](“[[ISO]] HTML”)——[[2000年]][[5月15日]]发布,基于严格的HTML 4.01语法,是[[国际标准化组织]]和[[国际电工委员会]]的标准。
| |
− |
| |
− | 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接納。
| |
− |
| |
− | ==== XHTML ====
| |
− | {{main|XHTML}}
| |
− | * [http://www.w3.org/TR/xhtml1/ XHTML 1.0]——发布于[[2000年]]1月26日,是W3C推荐标准,后来经过修订于2002年8月1日重新发布。
| |
− | * [http://www.w3.org/TR/xhtml11/ XHTML 1.1],于2001年5月31日发布,W3C推荐标准。
| |
− | * [http://www.w3.org/TR/xhtml2/ XHTML 2.0],W3C工作草案。
| |
− | * [[XHTML 5]],從XHTML 1.x的更新版,基於[http://www.w3.org/html/wg/html5/ HTML 5草案]。
| |
− |
| |
− | == 标记元素类型 ==
| |
− | * '''结构性'''标记,描述文字的意图,例如:<source lang="html4strict"><h2>Golf</h2></source>指明浏览器将"Golf"显示为二级标题。结构性标记并未指示浏览器的显示方式,但是大多数浏览器标准化了这些元素的显示,例如默认情况下上述的标题会被显示为较大的粗体文字。参见[[层叠样式表]](CSS)。比较常用的结构性标记有:
| |
− | ** html元素 标记HTML内容的开始和结束。
| |
− | ** head元素 标记HTML文件头,包含不在正文中显示的关键字、标题、脚本等等。
| |
− | *** title元素 标记HTML文件的标题。
| |
− | ** body元素 标记HTML文件正文的开始和结束。
| |
− |
| |
− | * '''文字變化性'''标记。描述文字的外观,例如:<source lang="html4strict"><b>boldface</b></source>将"boldface"显示为'''粗体'''文字。但是为了统一网站的风格,很多网络出版者使用CSS而不是重复使用呈现性标记。对于<source lang="html4strict"><b>bold</b></source>和<source lang="html4strict"><i>italic</i></source>也有通常更加明确的等价呈现性标记:<source lang="html4strict"><strong>strong emphasis</strong></source><source lang="html4strict"><em>emphasis</em></source>
| |
− |
| |
− | * '''超連結'''标记。将文档的一部分关联到其他文档。例如:<source lang="html4strict"><a href="http://wikipedia.org/">Wikipedia</a></source>
| |
− | :将会把[http://wikipedia.org Wikipedia]显示为一个[[超链接]][[URL]]。
| |
− |
| |
− | * 除了HTML内容之外,经常也有人在代码中加入注释:<source lang="html4strict"><!-- This is a comment --></source>其中This is a comment會被隱藏,<!--註解-->註解中的<!---->就是隱藏的意思,仅仅起到说明代码含义或者隐藏部分代码的作用。
| |
− |
| |
− | * '''框架頁面'''標記。描述網頁如何顯示框架網頁,較低版本的瀏覽器並不支援此功能。<source lang="html4strict"><frameset> </frameset></source>
| |
− | :::代表定義一個框架。若在<code><nowiki>後加上rows="100,*"</nowiki></code>,這代表網頁會開啟一個上下分割網頁的框架,而上框架網頁的高度是100px。。加上cols="100,*"代表網頁左右分割,左框架的網頁闊度是100px。
| |
− |
| |
− | :: <code><nowiki><framename="left" src="left.html" /></nowiki></code>
| |
− | :::代表框架頁的名稱及檔案來源。這個語法是加在<code><nowiki></frameset></nowiki></code>前。
| |
− | 每个标记都有特定的属性。由于对标准的支持度相差很大,一些标记和属性可能只被部分浏览器支持。
| |
− |
| |
− | == [[文件类型描述]] ==
| |
− | 为了指明文档使用的HTML标准,所有HTML文档应该以[[文件类型声明]](DOCTYPE)开头,引用一个[[文件类型描述]]。举例来说:
| |
− | <nowiki><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
| |
− | "http://www.w3.org/TR/html4/strict.dtd"></nowiki>
| |
− |
| |
− | 这个声明断言文档服从HTML 4.01的严格文件类型描述,这个标准是严格结构化的,使用[[CSS]]来做格式化。有时是否存在一个合适的文件类型描述会影响一个浏览器显示网页的方式。
| |
− |
| |
− | 除了HTML 4.01的严格文件类型描述之外,HTML 4.01也提供过渡和[[框架集]]文件类型描述。
| |
− |
| |
− | '''过渡文件类型描述'''是向严格的文件类型描述过渡的缓冲。
| |
− |
| |
− | <nowiki><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
| |
− | "http://www.w3.org/TR/html4/loose.dtd"></nowiki>
| |
− |
| |
− | 而'''框架集文件类型描述'''则针对包含[[框架元素]]的网页。
| |
− |
| |
− | <nowiki><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
| |
− | "http://www.w3.org/TR/html4/frameset.dtd"></nowiki>
| |
− |
| |
− | == 分离样式和内容 ==
| |
− | 网络开发社区的努力导致一种新的网页编写潮流,[[XHTML]]就是一个典型。标准着重于描述网页结构的元素,例如标题、段落、引言和表格,而不是那些用于呈现的元素,例如<font>、 <b>(粗体)和<i>(斜体)。在一些HTML变体中这些元素甚至被禁用,例如HTML 4.01的严格版本。CSS提供了一种分离HTML结构和内容呈现的方式:把所有呈现代码移到单独的CSS文件。
| |
− |
| |
− | == 使用[[HTTP]]发布HTML ==
| |
− | [[万维网]]主要由从服务器通过HTTP协议向浏览器发送的HTML文档组成。但是,HTTP也可以被用于传输HTML之外的数据,例如图像、声音和其他内容。为使浏览器了解如何处理接收到的文档,在传输文档时必须同时传递[[文件类型]]。这种[[元数据]]包含[[MIME]]类型(对于HTML 4.01或更早版本是<tt>text/html</tt>,而对于XHTML 1.0或之后的版本是<tt>application/xhtml+xml</tt>),以及字符编码(参见[[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]]社会网络软件允许浏览者编辑访问的网页。
| |