1.2 XHTML语言

1.2.1 XHTML文档基本构成

一个XHTML文档由DOCTYPE、head和body三个主要的部分构成,基本的文档结构如下:

在XHTML文档中,文档类型声明总位于首行,文档的其余部分类似于HTML。基本的HTML页面从<html>标记开始,以</html>标记结束,其他所有HTML代码都位于这两个标记之间。<head>与</head>之间是文档头部分,<body>与</body>之间是文档主体部分。

下面是一个简单的(最小化的)XHTML文档:

<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
    <head>
        <title>simple document</title>
    </head>
    <body>
        <p>a simple paragraph</p>
    </body>
</html>

这种文档用普通的记事本就可以创建、编辑,并且可以在各种操作系统平台(如UNIX、Windows等)中执行。

1.文档类型声明

文档类型声明定义文档的类型,包括三种文档类型。

(1)Strict(严格类型)

在此情况下,需要干净的标记,避免表现上的混乱,与层叠样式表(CSS)配合使用。上面这个最小化的XHTML文档用的就是Strict类型:

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

(2)Transitional(过渡类型)

当需要利用HTML在表现上的特性,为那些不支持CSS的浏览器编写XHTML时使用Transitional,格式如下:

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

(3)Frameset(框架类型)

当需要使用HTML框架将浏览器窗口分割为两部分或更多框架时使用Frameset,格式如下:

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

2.文档头

文档头部分处于<head>与</head>标记之间,在文档头部分一般可以使用以下几种标记。

● <title>和</title>:指定网页的标题。例如,“<title>主页</title>”表示该网页的标题为“主页”,在浏览器标题栏中显示的文本即为“主页”,通常Web搜索工具用它作为索引。

● <style>和</style>:指定文档内容的样式表,如字体大小、格式等。在文档头部分定义了样式表后,就可以在文档主体部分引用样式表,具体用法详见1.3节。

● <!--和-->:用于注释内容,其之间的内容为XHTML的注释部分。

● <meta>:描述标记,用于描述网页文档的属性参数。

描述标记的格式为<meta属性=“值”… />,常用的属性有name、content和http-equiv。name为meta的名字;content为页面的内容;http-equiv为content属性的类别。http-equiv取不同值时,content表示的内容也不一样。

◆ http-equiv="Content-type"时,content表示页面内容的类型,例如:

<meta name="description"http-equiv="Content-type"content="text/html;charset=gb2312"  />

表示meta的名称为description,网页是XHTML类型,编码规则是gb2312。

◆ http-equiv="refresh"时,content表示刷新页面的时间,例如:

<meta http-equiv="refresh"content="10;URL=xxx.htm"  />

表示10秒后进入xxx.htm页面,如果不加URL则表示每10秒刷新一次本页面。

◆ http-equiv="Content-language"时,content表示页面使用的语言,例如:

<meta http-equiv="Content-language"content="en-us"  />

表示页面使用的语言是美国英语。

◆ http-equiv="pics-Label"时,content表示页面内容的等级。

◆ http-equiv="expires"时,content表示页面过期的日期。

● <script>和</script>:在这两个标记之间可以插入脚本语言程序,例如:

<script language="javascript">
    alert("你好!");
</script>

表示插入的是JavaScript脚本语言,脚本语言主要用于客户端(前端)页面开发,详细内容将在本书第4章介绍。

3.文档主体

<body>和</body>是文档正文标记,文档的主体部分就处于这两个标记之间。<body>标记中还可以定义文档主体的一些内容,格式如下:

<body属性="值"… 事件="执行的程序"…>  …</body>

<body>标记常用的属性如下。

● background:文档背景图片的URL地址。例如:

<body background="back-ground.gif">

表示文档背景图片名称为back-ground.gif,上面的代码中没有给出图片所在的位置,则表示图片和文档文件在同一文件夹下,如果图片和文档文件不在同一位置,则需要给出图片的路径,例如:

<body background="C:/image/back-ground.gif">

说明:在指定文件位置时,为防止与转义符“\”混淆,一般用“/”来代替“\”。

● bgcolor:文档的背景颜色。例如:

<body bgcolor="red">

表示文档的背景颜色为红色。系统的许多标记都会用到颜色值,颜色值一般用颜色名称或十六进制数值来表示,表1.1列出了16种标准颜色的名称及其十六进制数值。

表1.1 16种标准颜色的名称及其十六进制数值

● text:文档中文本的颜色,例如:

<body text="blue">

表示文档中文字的颜色都为蓝色。

● link:文档中链接的颜色。

● vlink:文档中已被访问过的链接的颜色。

● alink:文档中正在被选中的链接的颜色。

正文标记中的常用事件有onload和onunload。onload表示文档首次加载时调用的事件处理程序,onunload表示文档卸载时调用的事件处理程序。

4.示例

例1.1】使用XHTML设计一个以南京师范大学校门为背景的网页。

(1)准备

在桌面上新建一个XHTML文件夹,到南京师范大学校园网下载一幅仙林新校区大门的照片,以文件名njnu.jpg保存于XHTML文件夹下。

(2)编辑XHTML文档

打开Windows记事本,输入下列内容:

<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
    <title>南京师范大学校门</title>
    <script language="JavaScript">
        function myp()
        {
            alert("欢迎访问!");
        }
    </script>
</head>
<body background="njnu.jpg" onload="myp()">
    <div align="center">
        <font color="#8888FF" size="7">
            南京师范大学仙林新校区
        </font>
    </div>
</body>
</html>

以1_1njnu.html作为文件名保存到XHTML文件夹中(与njnu.jpg在同一个文件夹)。

(3)运行

双击打开刚刚编辑的文档1_1njnu.html,将显示如图1.3所示的页面。

图1.3 南京师范大学校门背景网页

从上例的代码中可以很清楚地看出XHTML与HTML有以下几点最主要的不同之处。

① 元素必须被正确地嵌套;

② XHTML元素必须被关闭;

③ 标签名必须用小写字母;

④ XHTML文档必须拥有一个根元素。

另外,XHTML还有下列语法规则。

① 属性名称必须小写;

② 属性值必须加引号;

③ 属性不能简写;

④ 用id属性代替name属性;

⑤ XHTML DTD定义了强制使用的HTML元素。

XHTML页面中显示的内容都是在文档的主体部分(即<body>和</body>标记之间)定义的。文档主体部分能够定义文本、图像、声音、滚动字幕、表格、表单、超链接和框架等,这些都依靠丰富的XHTML语言标记来完成。