HTML+CSS+JavaScript网页设计实用教程
上QQ阅读APP看书,第一时间看更新

1.5 了解XHTML

XHTML是当前HTML版本的发展和延伸。HTML语法要求比较松散,这样对网页编写者来说,比较方便,但对于机器来说,语言的语法越松散,处理起来就越困难。对于传统的计算机来说,还有能力兼容松散语法,但对于许多其他设备,比如手机,难度就比较大。因此产生了由DTD定义规则,语法要求更加严格的XHTML。

1.5.1 什么是XHTML

XHTML是HTML的一种扩展,即Extensible HyperText Markup Language的缩写,表示XHTML是可扩展的超文本标记语言,与HTML相比,具有更加规范的书写标准、更好的跨平台能力。

HTML是一种基本的网页设计语言,XHTML是一种基于XML(可扩展标记语言)的标识语言,看起来与HTML非常相似,只有一些细节的重要区别。XHTML就是一种扮演着类似HTML角色的XML,所以,本质上说,XHTML是一种过渡技术,融合了部分XML的强大功能及大多数HTML的简单特性。

XHTML 1.0是在HTML4.0的基础上进行优化和改进的新语言,它与HTML最主要的不同之处在于:XHTML元素一定要正确地嵌套,XHTML元必须要关闭,标签名称必须使用小写字母,XHTML文档必须拥有根元素。

1.5.2 XHTML的文档结构

首先看一个最简单的XHTML页面实例,其代码如下。

      <! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
  Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-
  transitional.dtd">
      <html xmlns="http://www.w3.org/1999/xhtml">
      <head>
      <meta http-equiv="Content-Type" content="text/html;
  charset=utf-8" />
      <title>无标题文档</title>
      </head>
      <body>
      文档内容部分
      </body>
      </html>

在这段代码中,包含了一个XHTML页面必须具有的页面结构,其具体结构包含下面几个部分。

● 文档类型声明部分

文档类型声明部分由<! DOCTYPE>元素定义,其对应的页面代码如下。

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

● <html>元素和名字空间

<html>元素是XHTML文档中必须使用的元素,所有的文档内容(包括文档头部内容和文档主体内容)都要包含在<html>元素之中,<html>元素的语法结构如下。

<html>文档内容部分</html>

起始标签<html>和结束标签</html>一起构成一个完整的<html>元素,其包含的内容要写在起始和结束标签之间。

名字空间是<html>元素的一个属性,写在<html>元素起始标签里面,其在页面中的相应代码如下。

      <html xmlns="http://www.w3.org/1999/xhtml">

名字空间属性用xmlns来表示,用来定义识别页面标签的网址。

● 文档头部内容

网页头部元素<head>也是XHTML文档中必须使用的元素,其作用是定义页面头部的信息,其中可以包含标题元素、<meta>元素等,<head>元素的语法结构如下。

      <head>头部内容部分</head>

<head>元素所包含的内容不会显示在浏览器的窗口中,但是部分内容会显示在浏览器的特定位置,例如标题栏等。

● 标题元素

页面标题元素<title>用来定义页面的标题,其语法结构如下。

      <title>页面标题</title>

在预览和发布页面时,页面标题中包含的文本会显示在浏览器的标题栏中。

● 文档主体元素

主体元素<body>用来定义页面所要显示的内容,页面的信息主要通过页面主体来传递,在<body>元素中,可以包含所有页面元素,<body>元素的语法结构如下。

      <body>页面主体</body>

定义了以上几个元素后,便构成了一个完整的XHTML页面。而且以上所有元素都是XHTML页面所必须具有的基本元素。

1.5.3 XHTML的代码规范

在使用XHTML语言进行网页制作时,必须要遵循一定的语法规范。具体内容可以分为以下几点。

● 标签和属性名称必须小写

在XHTML文档中,标签和标签的属性都必须小写。

正确的写法如下。

      <body>
        <div id="box">
        这里是box中的内容
        </div>
      </body>

错误的写法如下。

      <BODY>
        <DIV ID="box" >
        这里是box中的内容
        </DIV>
      </BODY>

● 属性值必须加英文双引号

在XHTML文档中,属性的值需要用英文双引号“""”括起来。

正确的写法如下。

      <body>
        <div id="box" >
        这里是<span class="font01">box</span>中的内容
        </div>
      </body>

错误的写法如下。

      <body>
        < div id=box >
        这里是<span class=font01>box</span>中的内容
        </div>
      </body>

● 所有标签,包括空标签都需要关闭

在XHTML文档中,所有的标签都必须关闭,不允许没有关闭的标签存在于代码中。

正确的写法如下。

      <p>文档内容</p>
      文档内容</br>
      <img src="images/banner.jpg" />

错误的写法如下。

      <p>文档内容
      文档内容</br>
      <img src="images/banner.jpg">

● 所有标签必须正确嵌套

XHTML中,当标签进行嵌套时,必须按照打开标签的顺序进行关闭。

正确嵌套标签的代码示例如下。

      <ul>
        <li></li>
      </ul>

错误的嵌套标签的代码示例如下。

      <ul>
        <li></ul>
      </li>

XHTML中还有一些严格强制执行的嵌套限制,这些限制包括以下几点。

1.<a>标签中不能包含其他的<a>标签;

2.<pre>标签中不能包含<object>、<big>、<img>、<small>、<sub>或<sup>标签;

3.<button>标签中不能包含<input>、<textarea>、<label>、<select>、<button>、<form>、<iframe>、<fi eldset>或<isindex>标签;

4.<label>标签中不能包含其他的<label>标签;

5.<form>标签中不能包含其他的<form>标签。

● 使用编码表示特殊字符

在XHTML页面内容中,所有的特殊字符都要用编码表示,例如&必须要用&amp;的形式。

例如下面的HTML代码:

      <img src="pic.jpg" alt="abc & def">

在XHTML中必须要写成:

      <img src="pic.jpg" alt="abc &amp; def" />

● 推荐使用CSS样式控制页面外观

在XHTML中,推荐使用CSS样式控制页面的外观,实现页面的结构和表现相分离,相应地会有部分外观属性不推荐使用,例如align属性等。

● 使用页面注释

XHTML中使用<! --和-->作为页面注释,在页面中相应的位置使用注释可以使文档结构更加清晰,其示例代码如下。

      <! --这是一个注释 -->

● 推荐通过链接调用外部脚本

XHTML中使用<! --和-->在注释中插入脚本,但是在XML浏览器中会被简单地删除,导致脚本或样式的失效,推荐使用外部链接来调用脚本,调用脚本的代码如下。

      <script language="JavaScript1.2" type="text/javascript"
  src="scripts/menu.js"> </script>

提示:

language是指所使用的语言的版本,type是指l所使用脚本语言等的种类,src是指脚本文件所在路径。

1.5.4 XHTML的文档类型

文档类型(DOCTYPE)的选择将决定页面中可以使用哪些元素和属性,同时将决定级联样式能否实现,下面详细讲解关于DOCTYPE的定义和选择问题。

文档类型又可以写为DOCTYPE,是Document Type的简写,在页面中用来说明页面所使用的XHTML是什么版本。制作XHTML页面,一个必不可少的关键组成部分就是DOCTYPE声明,只有确定了一个正确的DOCTYPE, XHTML里的标识和级联样式才能正常生效。

在XHTML 1.0中有3种文档类型定义(DTD)声明可以选择:过渡的(Transitional)、严格的(Strict)、框架的(Frameset),分别介绍如下。

● 过渡的DTD(Transitional)

这是一种要求不很严格的DTD,允许用户使用一部分旧的HTML标签来编写XHTML文档,帮助用户慢慢适应XHTML的编写,过渡的DTD的写法如下。

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

● 严格的DTD(Strict)

这是一种要求严格的DTD,不允许使用任何表现层的标识和属性,例如<br/>等,严格的DTD的写法如下。

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

● 框架的DTD(Frameset)

这是一种专门针对框架页面所使用的DTD,当页面中包含有框架元素时,就要采用这种DTD,框架的DTD的写法如下。

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

使用严格的DTD来制作页面当然是最理想的方式,但对于没有深入了解Web标准的网页设计者,比较合适的是使用过渡的DTD。因为这种DTD还允许使用表现层的标识、元素和属性。DOCTYPE的声明一定要放置在XHTML文档的头部。

在2001年5月份,W3C发布了XHTML 1.1版。其规范和1.0版中的严格类型基本相似,其DTD的写法如下:

      <! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//
  EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

1.5.5 名字空间

名字空间的英文是Namespace,含义就是通过一个网址指向来识别页面上的标签。在XHTML中使用的是xmlns,也就是XHTML Namespace的缩写。用来识别XHTML页面上的标签的网址指向是http://www.w3.org/1999/xhtml。关于名字空间定义的完整写法如下:

      <html xmlns="http://www.w3.org/1999/xhtml">

当使用可视化的网页开发工具新建文档时,选择适当的格式的文档类型,DOCTYPE的声明和名字空间的声明都会自动生成。到目前为止,XHTML的4种文档类型的名字空间都是http://www.w3.org/1999/xhtml

提示:

w3.org的校验不会由于这个属性没有出现在要校验的XHMTL文档中而报告错误。这是因为xmlns=http://www.w3.org/1999/xhtml是一个固定的值,即使文档里没有包含它,它也会自动加上。

1.5.6 使用XHTML的优势

XHTML是面向结构的语言,其设计不像HTML仅仅是为了网页的设计和表现,XHTML主要用于对网页内容进行结构设计。严谨语法结构有利于浏览器进行解析处理。

XHTML另一方面也是XML的过渡语言。XML是完全面向结构的设计语言,XHTML能够帮助快速适应结构化的设计,以便于平滑过渡到XML,并能于XML和其他程序语言之间进行良好的交互,帮助扩展其功能。

使用XHTML的另一个优势是它非常严密。当前网络上的HTML的使用极其混乱,不完整的代码、私有标签的定义、反复杂乱的表格嵌套等,使得页面的体积越来越庞大,而浏览器为了要兼容这些HTML也跟着变得非常庞大。

XHTML能与其他基于XML的标记语言、应用程序及协议进行良好的交互工作。XHTML是Web标准家族的一部分,能很好地用在无线设备等其他用户代理上。