(002)XHTML文档介绍

时间:2022-11-10 14:20:56

一、引言

  这里首先澄清两个术语:“文档”和“页面”。文档本质上是包含有XHTML源代码的那个纯文本文件,而页面则是图形浏览器呈现这个文档所得到的可见结果。

  一个有效、合适的XHTML文档必须符合严格的结构,并按确切的格局安排一些必需的组成部分。如下代码清单则展示了一个基本的XHTML的文档结构:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
  <head>
    <title>My first web page</title>
  </head>
  <body>
    <p>XHTML is easy!</p>
  </body>
</html>

 

二、DOCTYPE

  XHTML文档开始于一个文档类型声明(Document Type Declaration,简写为DOCTYPE)。这是一种必需的组成部分。它的作用是声明文档的类型及其所遵守的标准规则集。XHTML的每种“风味”都有自己相应的文档类型声明。

  • XHTML 1.0 Strict:

  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

  • XHTML 1.0 Transitional:

  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

  • XHTML 1.0 Frameset:

  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

  文档类型声明是一种标签,但是尽管也使用尖括号,它并不是XHTML元素,因此并不需要一个闭标签和结尾斜线。实际上,它根本就不是文档代码的一部分。它只是向用户代理传达关于文档的信息,助其判断所处理的文档的类型并按照恰当的规则呈现页面。

  必须注意的是XHTML文档必须要按照这样的文档类型来声明,包括大小写形式和引号。HTML的其他版本也有自己的文档类型声明,但是我们这里只使用xhtml 1.0 strict模式。

 

 1. 文档类型切换:遵从模式与怪异模式

  当浏览器下载了html或xhtml文档后,它必须做出一系列程序化的假定,以便解析文档的标记代码并应用作者的CSS代码中建议的表现形式。最早支持CSS的一些浏览器在此过程中很大程度上依照的是自己的规则,而不是标准化的规范。总的说来,这是采用CSS和Web标准时遇到的一块最大的绊脚石。一个页面也许在一个图形化浏览器中呈现得很完美,但在另外一种浏览器中却乱成一锅粥。

  在各种浏览器改进对其CSS的支持以更好地遵守Web标准的过程中,它们面临着左右为难的局面。许多网站的设计内在地依赖于旧式浏览器那种与标准不一致的、不正确的呈现模式。如果一下子转而遵守标准规则,将导致无数网页头一天看起来还是好好的,但是第二天到了最新版的web浏览器中看起来就变得乱糟糟的了。这主要的原因就是浏览器的呈现方式发生了变化。

  这种窘境导致了文档类型声明切换的出现。如果一个文档包含完整、正确的文档类型声明,那么现代的浏览器可以认为整个文档是合适的并且遵守Web标准。于是浏览器可以在一种遵从标记语言和css的既定标准的模式下呈现页面。这种模式称为遵从模式、严格模式或标准模式。如果文档中没有文档类型声明,或者声明不完整或不正确,则浏览器将假定所处理的是一个旧式文档,并转而采用其宽松和宽容的旧式呈现模式。这种模式称为怪异模式、兼容模式,因为它旨在适应非标准的、未正确构建的标记代码的种种怪癖。较老的浏览器缺乏内置的文档类型声明切换功能,因此只能使用其过时的怪异模式。

  在现代的Web浏览器中,为了正确地启用遵从模式,必须在文档的第一行加入一条完整的文档类型声明,在它之前只允许有空白符。出现在文档类型声明之前的任何标记代码、文本甚至注释都将导致大多数浏览器进入怪异模式并产生常常不可预见的结果。当文档使用遵从模式呈现的时候,用CSS设计网站要容易的多,其结果也更为一致。因此,一条完整、正确的文档类型声明是非常必要的。并且,因为文档类型声明也是有效Web文档的必需部分,所以只要文档是正确的,新式浏览器总会用遵从模式来呈现它们。

 

三、<html>元素

  实际的标记代码从文档类型声明后面的html元素开始。html元素是整个文档的容器,故html元素被称之为根元素,所有其他元素都由html元素展开。html元素没有自己特有的属性,它纯粹是一个用于定义文档的开始和结尾的容器。出现在这个元素之外的任何元素或内容(除了并非元素的文档类型声明)都将导致整个文档无效。

 1. 必需属性

  xmlns:用于指定xml命名空间的URL。对于xhtml文档,应该是http://www.w3.org/1999/xhtml。

 2. 可选属性

  html元素没有可选属性。

 3. 标准属性

  • dir(国际属性——表示将文本的阅读方向设置为由值ltr(从左到右)或rtl(从右到左)所指定的方向,通常用不着这个属性,因为语言的方向应该由lang和xml:lang属性来推断。)
  • id
  • lang(国际属性——指定用于书写所包含的内容和语言。语言用一种缩写的语言代码表示。)
  • xml:lang

  命名空间(xmlns)是xml语言中规定属性和元素名称的地方。XML是一种可扩展标记语言,允许作者定义自己的自定义元素和属性。例如,对于一个关于动物的文档来说,一个具有species属性的animal元素会很有用,这些自定义名称可以定义在一个特别的命名空间中。另一方面,xhtml 1.0具有自己的一整套预定义的元素和属性名称集,其命名空间的正确URL为http://www.w3.org/1999/xhtml。故xhtml文档中的命名空间通过html元素的xmlns属性声明。

  标准的lang和xml:lang属性对于html元素是可选的(正如对于大多数其他元素一样)。因为它是根元素,所有其他的元素都是其后裔,这里的语言声明将会传递到文档中的所有其他元素,所以建议指定这两个属性。

 

四、其他部分

  文档的其他部分由head和body元素组成。其中head元素包含关于文档自身的信息(包括必须的title元素),而body元素则包含所有最终由浏览器呈现并供访问者浏览和使用的内容。

  总之,xhtml文档的基本结构非常简单,只需要一条文档类型声明、一个根元素、一个具有title元素的head元素,还有一个body元素。也就是说只要具备这几个基础元素的xhtml文档就是完整、合适的文档,就可以通过w3c的校验器验证。如下图:

(002)XHTML文档介绍