跳转到内容

HTML

本页使用了标题或全文手工转换
维基百科,自由的百科全书

这是本页的一个历史版本,由27.9.32.169留言2012年9月28日 (五) 04:23 (鉴于本百科是中文维基,那说法必须规范百科化,使用中文全称及英文缩写全称)编辑。这可能和当前版本存在着巨大的差异。

超级文本标记语言
一段用彩色标识的超级文本标记语言原始碼
扩展名
.html, .htm
互联网媒体类型
text/html
类型代码英语Type codeTEXT
统一类型标识public.html
开发者万维网联盟(W3C) 網頁超文本技術工作小組(WHATWG)
格式类型置标语言
扩展自标准通用标记语言
扩展为XHTML

超级文本标记语言(超文本标记语言)英文HyperText Markup LanguageHTML)是为「网页创建和其它可在网页浏览器中看到的信息」设计的一种标记语言。超级文本标记语言被用来结构化信息——例如标题、段落和列表等等,也可用来在一定程度上描述文档的外观和语义。1982年由蒂姆·伯纳斯-李创建,由IETF用简化的标准通用标记语言(标准通用标记语言)语法进行进一步发展的超级文本标记语言,后来成为国际标准,由万维网联盟(英文缩写W3C)维护。

超级文本标记语言是标准通用标记语言下的一个应用。

(英文缩写:HTML)档案最常用的扩展名副檔名)是.html,但是像磁盘操作系统(英文缩写:DOS)这样的旧操作系统限制扩展名为最多3个字符,所以.htm扩展名也允許使用。现在.htm扩展名使用的比较少一些了,但是仍旧受到支持。編者可以用任何文本编辑器所见即所得HTML编辑器来编辑超级文本标记语言文件。

早期的超级文本标记语言语法規則定义较為松散,這有助于不熟悉网络出版的人采用。网络页面浏览器接受了这个事實,使之可以显示语法不严格的网络页面。随着时间的流逝,官方标准渐渐趋于严格的语法,但是浏览器继续显示一些远称不上合乎标准的超级文本标记语言。使用XML的严格规则的XHTML(可扩展超文本标记语言)是W3C计划中的超级文本标记语言的接替者。虽然很多人认为它已经成为当前的超级文本标记语言标准,但是它实际上是一个独立的、和超级文本标记语言平行发展的标准。W3C目前建议使用可扩展超文本置标语言1.1、可扩展超文本置标语言1.0或者超级文本标记语言4.01標準編寫網頁,但已有不少網頁轉用較新的 超级文本标记语言第伍版本 編碼撰寫(如谷歌)。

发展历史

1980年,蒂姆·伯纳斯-李為使世界各地的物理學家能夠方便的進行合作研究,建立了使用於其系統的超级文本标记语言。Tim Berners-Lee設計的超级文本标记语言以純文字格式為基礎,可以任何文字編輯器處理,最初僅有少量標記(TAG)而易於掌握運用。隨著超级文本标记语言使用率的增加,人們不滿足只能看到文字。1993年,還是大學生的馬克·安德生在他的Mosaic瀏覽器加入<img>標記,從此可以在Web頁面上瀏覽圖片。但人們認為僅有圖片還是不夠,希望可將任何形式的媒體加到網頁上。因此超级文本标记语言不斷地擴充和發展。

标准的版本历史

超级文本标记语言

超级文本标记语言没有1.0版本是因为当时有很多不同的版本。有些人认为蒂姆·伯纳斯-李的版本应该算初版,这个版本没有IMG元素。当时被称为超级文本标记语言+的后续版开发工作于1993年开始,最初被设计成为“超级文本标记语言的一个超集”。第一个正式规范在为了和当时的各种超级文本标记语言标准区分开来,使用了2.0作为其版本号。超级文本标记语言+的发展继续下去,但是它从未成为标准。

超级文本标记语言3.0规范是由当时刚成立的万维网联盟于1995年3月提出,提供了很多新的特性,例如表格、文字绕排和复杂数学元素的显示。虽然它是被设计用来兼容2.0版本的,但是实现这个标准的工作在当时过于复杂,在草案于1995年9月过期时,标准开发也因为缺乏浏览器支持而中止了。3.1版从未被正式提出,而下一个被提出的版本是开发代号为Wilbur的超级文本标记语言3.2,去掉了大部分3.0中的新特性,但是加入了很多特定浏览器,例如NetscapeMosaic的元素和属性。超级文本标记语言对数学公式的支持最后成为另外一个标准MathML

超级文本标记语言4.0同样加入了很多特定浏览器的元素和属性,但是同一時間有不少的过时元素和属性标准也被「清理」掉,建议不再使用它们。超级文本标记语言的未来和CSS结合会更好。

超级文本标记语言第伍版本目前仍為草案,並已經被万维网联盟接納。

超级文本标记语言的實際執行

超级文本标记语言(网络页面)於電腦系統上的實際執行應用,大多數的人都以為網頁是在線執行的。雖然現在大部分網頁都使用AJAX技術,需與伺服器不停交換資料,但這其實是錯誤的觀念。超级文本标记语言發明的理由之一是要加速在線執行的效率與資料交換的便利,可是超级文本标记语言並不是實際的在線執行,下面的程序是超级文本标记语言實際於電腦系統中的真實程序:

  1. 使用者於電腦中的網頁瀏覽器輸入网络地址(统一资源定位器),該网络地址可以是互聯網(英文:Internet),也可以是內聯網(英文:Intranet)或是電腦本機的一個位置。
  2. 若是用者輸入的網址為 Internet,則瀏覽器會先將該網頁全部下載至使用者本機的記憶體上(通常存於硬碟的暫存區)。微軟Internet Explorer還提供網際網路暫存空間,讓檢視網頁時,與網頁相關的檔案及圖片會儲存至電腦上的網際網路暫存檔資料夾中。
  3. 網頁瀏覽器打開下載的網頁檔案,依據超级文本标记语言內的描述找到該URI內的各項網路資源,然後依序將資源下載到本機電腦。
  4. 網頁瀏覽器依據超级文本标记语言的描述,將已經下載下來的各種網路資源(如圖形、文字)排列成超级文本标记语言網頁設計者當初建置該網頁的樣式。
  5. 若是用者想要長期儲存該網頁及該網頁的網路資源,可以利用瀏覽器提供的儲存網頁的功能來進行,該功能執行時,其實使用者根本不需再次從網上下載任何資料,瀏覽器只是將原先存放於暫存區的網頁及已經下載好的網路資源,轉移至使用者指定的長期儲存區(可以是硬碟、光碟、或是隨身碟)。
  6. 在網路上的網頁只有一種格式,通常副檔名為 .html 或 .htm ,但是並不是只有這兩種格式才是網頁超级文本标记语言,目前有許多動態網頁或是互動網頁其副檔名就不是.html或.htm,例如JAVA系統的.jsp微軟系統的.asp等,其實這些檔案他的內容與格式確實與超级文本标记语言不同,可是這種動態網頁,在瀏覽器閱讀時,他們會自動產生純正的超级文本标记语言文檔給瀏覽器,所以瀏覽器閱讀到的是經過伺服器轉換過的標準超级文本标记语言,所以才能順利展現超级文本标记语言內所描述的樣式。

可扩展超级文本置标语言

为了說明文档使用的超级文本标记语言标准,所有超级文本标记语言文档应该以「文件类型声明」(标准通用标记语言)开头:

<!文档类型>

引用一个文件类型描述。举例来说:

  • 此宣告(文档类型--标准通用标记语言)说明这个文件是超级文本标记语言,它的第伍版本英文缩写:(超级文本标记语言第伍版本用此方法。
<!DOCTYPE HTML>
  • 这个声明(文档类型--标准通用标记语言)說明文档服从超级文本标记语言4.01的严格文件类型描述,这个标准是严格结构化的,使用CSS来做格式化。有时是否存在一个合适的文件类型描述会影响一个浏览器显示网页的方式。
<!DOCTYPE HTML
  PUBLIC "-//万维网联盟//DTD 超文本4.01严格版//CN"
  "http://www.w3.org/TR/html4/strict.dtd">

除了超级文本标记语言4.01的严格文件类型描述之外,超级文本标记语言4.01也提供「过渡」和「框架集」文件类型描述。

  • 过渡文件类型描述是向严格的文件类型描述过渡的缓冲。
<!DOCTYPE HTML
   PUBLIC "-//万维网联盟//DTD 超文本4.01 过渡//CN"
   "http://www.w3.org/TR/html4/loose.dtd">
  • 框架集文件类型描述则针对包含框架元素的网络页面。
<!DOCTYPE HTML
  PUBLIC "-//万维网联盟//DTD 超文本4.01 框架集//CN"
  "http://www.w3.org/TR/html4/frameset.dtd">

标记元素类型

【注意】超级文本标记语言伍 英文缩写:(HTML5)已停止使用一些標記元素,如︰<b><i>等,並建議使用CSS代替。

  • 结构性标记,描述文字的意图,例如:
    <h2>Golf</h2>
    
    指明浏览器将「Golf」显示为二级标题。结构性标记并未指示浏览器的显示方式,但是大多数浏览器标准化了这些元素的显示,例如默认情况下上述的标题会被显示为较大的粗体文字。参见层叠样式表
  • 比较常用的结构性标记有:
html元素:标记超级文本标记语言内容的开始和结束。
head元素:标记超级文本标记语言文件头,包含不在正文中显示的关键字、标题、脚本等等。
title元素:标记超级文本标记语言文件的标题。
body元素:标记超级文本标记语言文件正文的开始和结束。
  • 文字變化性标记。描述文字的外观,例如:
    <b>boldface</b>
    
    将「boldface」显示为粗体文字。但是为了统一网站的风格,很多网络出版者使用层叠样式表而不是重复使用呈现性标记。对于
    <b>bold</b> 和 <i>italic</i>
    
    也有更加明确的等价呈现性标记:
    <strong>strong emphasis</strong>
    
    <em>emphasis</em>
    
  • 超連結标记。将文档的一部分关联到其他文档。例如:
    <a href="http://wikipedia.org/">维基百科首页</a>
    
将会把Wikipedia显示为一个超链接URL
  • 除了超级文本标记语言内容之外,经常也有人在代码中加入注释:
    <!-- 注释内容 -->
    
    其中“注释内容”會被隱藏,註解中的就是隱藏的意思,仅仅起到说明代码含义或者隐藏部分代码的作用。
  • 框架頁面標記。描述網頁如何顯示框架網頁,較低版本的瀏覽器並不支援此功能。
    <frameset> </frameset>
    
代表定義一個框架。若在後加上rows="100,*",這代表網頁會開啟一個上下分割網頁的框架,而上框架網頁的高度是100px。加上cols="100,*"代表網頁左右分割,左框架的網頁闊度是100px
<frame name="left" src="left.html" />
代表框架頁的名稱及檔案來源,其中「/」為關閉符號,用於沒有對應結束標記,單獨存在的標記,如<br />。這個語法運用在<frameset> </frameset>之間。

每个标记都有特定的属性。由于对标准的支持度相差很大,一些标记和属性可能只被部分浏览器支持。

分离样式和内容

网络开发社区的努力导致一种新的网络页面编写潮流,XHTML就是一个典型。标准着重于描述网络页面结构的元素,例如标题、段落、引言和表格,而不是那些用于呈现的元素,例如<font>、 <b>(粗体)和<i>(斜体)。在一些超级文本标记语言变体中这些元素甚至被禁用,例如超级文本标记语言4.01的严格版本。层叠样式表提供了一种分离超级文本标记语言结构和内容呈现的方式:把所有呈现代码移到单独的层叠样式表文件。

使用HTTP发布超级文本标记语言

万维网主要由从服务器通过HTTP协议向浏览器发送的超级文本标记语言文档组成。但是,超级文本传输协议也可以被用于传输超级文本标记语言之外的数据,例如图像、声音和其他内容。为使浏览器了解如何处理接收到的文档,在传输文档时必须同时传递文件类型。这种元数据包含MIME类型(对于超级文本标记语言4.01或更早版本是text/html,而对于可扩展超文本置标语言1.0或之后的版本是application/xhtml+xml),以及字符编码(参见超级文本标记语言字符编码方式)。

在现在的浏览器中,和超级文本标记语言文档一起发送的多媒体网络信息延伸类型影响文档的解读方式。和可扩展超文本置标语言多媒体网络信息延伸类型一起发送的文档被认为是良构XML,而语法错误会导致浏览器无法呈现文档。完全相同的文档如果和超级文本标记语言多媒体网络信息延伸类型一起发送,则可能被正常显示,因为浏览器对超级文本标记语言的语法检查更加鬆懈些。

如果MIME类型不被识别为超级文本标记语言,那么浏览器不应该试图将文档呈现为超级文本标记语言,即使文档以正确的文档类型声明开头也是这样;尽管如此,一些浏览器还是检查文档内容或其统一资源定位器来判断其文件类型。因为可能造成的安全性问题,这种行为不被提倡。即使以不遵守标准著称的Internet Explorer也基本放弃了这种做法。

超级文本标记语言格式的电子邮件

一些图形模式下的电子邮件客户端支持超级文本标记语言格式的邮件。很多支持一个图形模式下的超级文本标记语言邮件编辑器,以及一个超级文本标记语言邮件阅览器。因为一些问题,超级文本标记语言邮件的使用有争议。超级文本标记语言邮件的主要优点是可以使用呈现性元素来加强邮件的视觉效果,但是缺陷也很多,例如

  • 收件人未必有一个可以浏览超级文本标记语言邮件的客户端
  • 邮件大小增加。一些邮件客户端随超级文本标记语言邮件发送一个纯文字版更加重了这个问题
  • 过度使用格式化
  • 潜在安全问题,例如伪造银行电子邮件用于网络钓鱼
  • 在一些有缺陷的电子邮件程序显示超级文本标记语言邮件时可能执行恶意代码

因为这些原因,很多新闻组邮件列表要么截断信件的超级文本标记语言部分,要么只接受纯文本版本部分的邮件,要么拒绝接收超级文本标记语言邮件。

超级文本标记语言格式

超级文本标记语言是一个相对比较弱的超文本实现。早期超文本系统具有具有类型的链接跨越包含来源跟踪这样的属性。另一个现在缺乏支持的特性是粗链路

直到不久之前,一些早期超级文本标记语言版本中的超文本特性一直被大多数浏览器忽略,例如link元素和可编辑的网络页面。

有时网络服务或者浏览器厂商也认识到这些特性。例如,现在的wikinuke社会网络软件允许浏览者编辑访问的网络页面。

参看

外部链接


Template:Link GA