HTML元素

维基百科,自由的百科全书
跳转至: 导航搜索
HTML
HTML.svg

HTML网页语言中, 一个HTML元素HTML文件的一个基本组成单元。HTML文件采用采用树形结构安排HTML元素。更进一步的说,一个 HTML元素是一个满足一项或多项DTD要求的元素。HTML元素可以拥有属性内容,可以是标题、段落、链接、列表、嵌入媒体或者其他的任何符合DTD要求的格式。

概述[编辑]

语法[编辑]

Parts of an HTML container element:
  • Start tag: <p … >
    • Attribute:
      • name: class
      • value: foo
  • Content: 这里是一个段落.
  • End tag: </p>
complete: <p class="foo">这里是一个段落.</p>
(详见 HTML 4.01 §3.2.1.)

HTML元素可以是容器或者为

容器元素 结构如下:

  • 一个开始标记<标记>)表示一个元素的开始,标记本身还可以包含属性;
    • 任何数量的属性 (和属性的值);
  • 内容(文本和/或子元素);
  • 一个结束标记,使用和其实标记完全相同的元素名但前面附加一个斜线字符 </tag>。并非所有的元素都要求结束标记,有些元素的结束表示是又可无的(如P),有些是一定不可以有的(如input)。

空元素指仅包含一个标记,该标记既是开始标记同时也是结束标记. 空元素可以有任意数量的属性<标记名 />. 在XHTML规范中,标记中的斜线符号是必须[1]

属性用来指示元素的附加的性质.

英语中有时HTML元素也被称为 “tags”,严格的说tag是指元素的开始或者结束标记。

在HTML中,元素(和属性)名字可以是大写或者小写,但在XHTML中,必须是小写。[2]大写是旧的用法,并且是HTML规范中说明的方法,但是小写更为通用。

相关标准[编辑]

从1995年起,HTML元素定义出现在在一些列的开放标准中。开始是IETF而后由W3C制订。

1990年代早期开始,的软件商(就是网络浏览器)开始不断的添加自定义的元素,有些被后来的标准吸收。并非所有的软件商都支持这些非标准的元素,一般对于非标准的元素,或者是忽略,或者是导致显示不正确。

1998年XML(一种简化的SGML)引入一种方法,允许任何人开发自己的元素并融合到XHTML文件中,使用支持XML的浏览器(用户代理, user agent)可以浏览任意元素。[3]

而后采用XML兼容的办法,重新制订了HTML 4.01标准,XHTML 1.0扩展的HTML)。 二者的元素相同,绝大多数情况下,XHTML 1.0文件的元素在HTML 4.0文件中是合法的。本文除非另外指出,应用的都是基于SGML的HTML,对于XHTML 多数情况下仍然适用(二者区别见HTML)

当前的状态[编辑]

自从HTML第一版以来,已经有数个元素因为过期,不再新的标准中推荐使用或者干脆删除。

目前由于并存三种HTML 4.01/XHTML 1.0 DTD标准,而使得HTML的验证变得复杂起来,这三种标准分别是:

  • Transitional,包含过期的元素。该标准制订的目的是提供一个过渡的时期,使得HTML作者可以逐渐适应新的扩展标准;
  • Frameset,另一种过渡标准,但是允许作者使用frameset;
  • Strict,符合现代(1999年以后)的标准。

HTML第一个标准(HTML 2.0)包含四个过期的元素。其中一个在HTML 3.2中被列为无效。所有的四个在HTML 4.01 Transitional中都被列为无效,HTML4.01 Transitional标准此外还将另外十个元素定义为无效。以上这些元素再加两个在HTML 4.01 Strict中同样被定义为无效。由于frame元素在显示方面的诸多问题以及其功能已经可以由其他元素替代,在未来的标准中不再保留,虽然目前在Transitional和Frameset DTD中仍然有效。

(严格的说,目前的XHTML标准XHTML 1.1 (2001)根本不支持frame。基本上与XHTML 1.0 Strict相同,但是又包含了Ruby markup模块。)[4]

一个经常导致错误理解的原因是不严格的使用deprecated(过期)一词来泛指过期的和无效的,以及今后一段时间过期的不同的状态。

展示和行为[编辑]

根据分离原则,HTML的功能在于给一个文件的内容增加语义和结构的信息。增加文件的展示行为的功能,例如增加CSSstylesheets和图形来增加文件的展示功能; 通过链接到外部文件和脚本增加与用户交互的行为。User agent也可以根据作者所提供的stylesheet在不同的介质(显示器,打印机)上展示不同效果。同时保持语义上的一致。

文件结构元素[编辑]

<html>...</html>

这是HTML文件的根元素,所有其他的元素均包含在其中。
HTML 2.0标准化,目前仍然在使用。

<head>...</head>

包含HTML标题定义、外部、脚本代码、格式代码等处理信息和元数据。
HTML 2.0标准化,目前仍然在使用。
(所包含的子元素见文件头元素)

<body>...</body>

包含HTML文件的内容.
HTML 2.0标准化,目前仍然在使用。
(所包含的子元素见文件内容元素)

文件头元素[编辑]

<base>

给文件中所有的相对href及其它链接提供一个基本。必须出现在任何引用外部资源的元素之前。在每个HTML文件中,只允许出现一个base元素。base元素可以有属性,但是没有内容。
HTML Tags中曾经提到一个开发版的BASE元素; 在HTML 2.0中得以标准化; 目前没有变化。

<basefont> (deprecated)

指定一个基本的字体,包括字符的大小,字型和颜色,与font元素搭配使用。已经过期,推荐使用CSS.
Standardised in HTML 3.2; deprecated in HTML 4.0 Transitional; invalid in HTML 4.0 Strict.

<isindex> (deprecated)

isindex既可以出现在文件头,也可以出现在文件体内,但是只能出现一次。需要服务器端的搜索引擎的支持。
出现在文件头表示这个文件是一个可搜索的索引。在页面上显示成一个单行的文本输入框用来输入关键词。页面被提交后,query string被加到当前的URL后面,输出的文件搜索的关键字被加亮显示。一般来说,如果服务器支持这个功能的话会自行的加入isindex
ISINDEXHTML Tags出现,在HTML 2.0标准化。在HTML 4.0 Transitional过期。在HTML 4.0 Strict中是无效的元素。

文件内容元素[编辑]

块元素[编辑]

基本的文本元素[编辑]

列表元素[编辑]

其他块元素[编辑]

行内元素[编辑]

[编辑]

<a>...</a>

锚元素之所以称为“锚”,是因为网页设计者可以用它们来将URL和网页上的一些文本“繫”(anchor)在一起。当用户在浏览器中查看网页时,他们可以通过点击文本来激活链接,以访问链接中URL指向的页面。[5]
在HTML中,锚既可以是超级链接的来源,也可以是目标端。
通过使用href属性(hypertext reference [1]),锚可以成为到文档中另一个部分的链接,也可以通过使用一个外部URL来指向另一个资源(如网页)。
或者(也可以是同时),通过使用nameid属性,使这个元素成为目标。URL可以通过碎片标识符链接到这个目标。现在,任何元素都可以通过使用id属性来变成一个锚,[2]因此<a name="foo">不再必要。

短语元素[编辑]

常用的短语元素[编辑]

<abbr></abbr>

表示本元素是一个缩写词,title属性中可以包含全称:
<abbr title="微型计算机">微机</abbr>
HTML 4.0标准化,目前仍然在使用。

<acronym></acronym>

abbr元素类似。(拼音文字中Acronym是指大写的首字母组合成的词,比如Hyper-Text Markup Language的Acronym是HTML; Abbreviation的概念更广泛些,可以是将一个较长的词后面部分去掉,用剩下的部分表示词的意思。中文中没有类似的区别):
<acronym title="Hyper-Text Markup Language">HTML</acronym>
HTML 4.0标准化,目前仍然在使用。

<dfn></dfn>

表示本元素是一个词条的定义。
DFNHTML Internet Draft 1.2中已经存在,在HTML 3.2中完全标准化,目前仍然在使用。

<em></em>

强调本元素,传统上显示为斜体。
EMHTML Internet Draft 1.2中已经存在,在HTML 2.0中完全标准化,目前仍然在使用。

<strong></strong>

加重一个词条,(传统上显示为粗体)。
有助听功能的浏览器可能会使用不同的声音来表述加重的词。
STRONGHTML Internet Draft 1.2已经存在,在HTML 2.0中完全标准化,目前仍然在使用。
计算机术语元素[编辑]

这些与元素主要用于方便显示计算机软件编码和与使用者交互(<code>);显示源代码变量(<var>);用户输入(<kbd>);以及终端输出(<samp>)。

<code></code>

显示一段代码。通常用等宽字体显示:Code snippet.
CODEHTML Internet Draft 1.2中出现,并且在HTML 2.0最终标准化; 目前仍在使用。

<samp></samp>

显示一段程序或脚本输出的样本。
SAMPHTML Internet Draft 1.2中出现,并且在HTML 2.0最终标准化; 目前仍在使用。

<kbd></kbd>

键盘 - 显示用户输入的文字。
KBDHTML Internet Draft 1.2中出现,并且在HTML 2.0最终标准化; 目前仍在使用。

<var></var>

显示一个变量。
VARHTML Internet Draft 1.2中出现,并且在HTML 2.0最终标准化; 目前仍在使用。
视觉效果[编辑]

视觉效果的元素仅仅对可视浏览器起作用,因此不推荐使用,如果可能应该使用层叠样式表。部分元素在HTML 4 / XHTML 1.0中被宣布过期或者无效的,其它的在当前的XHTML 2.0草案XHTML 2.0中被定义为无效的。当前的HTML 5草案HTML 5中,b, ismall还是有效的.

<b></b>

在可能的情况下,将字体设置成粗体。(等效的CSS是:{font-weight: bold}。)<strong>...</strong>在可视的浏览器中有相同的效果,但是有更强的语义。
BHTML Internet Draft 1.2中定义,并且在HTML 2.0标准化,目前仍在使用。

图形和对象[编辑]

提交表[编辑]

表格[编辑]

Frames[编辑]

注解[编辑]

传统的注解[编辑]

非标准元素[编辑]

引用[编辑]

  1. ^ XHTML 1.0 §4.6. & C.2
  2. ^ XHTML 1.0 §4.2
  3. ^ XML 1.0
  4. ^ XHTML 1.1 §A
  5. ^ HTML 4 for dummies, 5th edition, 2005, By Ed Tittel, Mary C. Burmeister, p. 96.

参考内容[编辑]

HTML标准[编辑]

HTML 2.0:
Berners-Lee, T., and Connolly, D. Hypertext Markup Language - 2.0 (RFC 1866) (html). IETF. November 1995 [2009-03-24]. 
HTML 3.2:
Raggett, D. HTML 3.2 Reference Specification (html). W3C. 1997-01-14 [2009-03-27]. 
HTML 4.01:
Raggett, D., Le Hors, A., and Jacobs, I. (editors). HTML 4.01 Specification (html). W3C. 1999-12-24 [2009-03-24].  (HTML 4.01 is the updated form of HTML 4.0.)
XHTML 1.0:
W3C. XHTML 1.0: The Extensible HyperText Markup Language (Second Edition) (html). W3C. 2000-01-26 [2009-03-24]. 
XHTML 1.1:
Altheim, M., and McCarron, S. (editors). XHTML 1.1 - Module-based XHTML (html). W3C. 2001-05-31 [2009-03-25]. 

其他资源[编辑]

HTML Tags:
Berners-Lee, T. HTML Tags (html). 1992-11-03 [2009-03-28].  (Part of the first published description of HTML.)
HTML Internet Draft 1.2:
Berners-Lee, T., and Connolly, D. Hypertext Markup Language (HTML) (text). June 1993 [2009-03-28]. 
HTML 3.0 Drafts:
Raggett, D. HyperText Markup Language Specification Version 3.0 (draft) (html). 1995-03-24 [2009-04-18].  (This is the final draft of HTML 3.0, which expired without being developed further.)
HTML Tables:
D. Raggett. HTML Tables (text). RFC 1942. IETF. May 1996 [2009-03-22]. 
XML 1.0:
Bray, T, Paoli, J, Sperberg-McQueen, CM, Maler, E and Yergeau, F (editors). Extensible Markup Language (XML) 1.0 (Fifth Edition) (html). W3C. 2008-11-26 [2009-03-20]. 
CSS:
Lie, H.W. and Bos, B. Cascading Style Sheets, level 1 (revised 2008-04-11) (html). W3C. 2008-04-11 [2009-04-05]. 

参见[编辑]

外部链接[编辑]