【转】关于由 Dreamweaver 生成的 XHTML 代码

Dreamweaver 通过符合大多数 XHTML 要求的方法生成新的 XHTML 代码,并且清理现有的 XHTML 代码。Dreamweaver 还提供了一些用以符合剩余的少数 XHTML 要求所需的 工具。

注意:本节所述的一些要求也是不同 HTML 版本中的要求。

下表说明了 Dreamweaver 自动符合的 XHTML 要求。

XHTML 要求

Dreamweaver 为满足此要求而执行的操作

当文档的字符编码是默认的 UTF-8 之外的编码时,文档必须具有 XML 声明。

在 XHTML 文档中添加一个 XML 声明并指定编 码;例如:

<?xml version="1.0" encoding="iso-8859-1"?>

文档中的根元素之前必须有 DOCTYPE 声明,而该声明必须引用 XHTML 的三个文档类型定义 (DTD) 文件(严格、过渡或框架页)之一。

在 XHTML 文档中添加一个 XHTML DOCTYPE:

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

或者,如果 XHTML 文档包含框架页:

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

文档的根元素必须为 html,而 html 元素必须指定 XHTML 命名空间。

namespace 属性添加到 html 元素,如下所示:

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

标准的文档必须包含 headtitlebody 结构元素。框架集文档必须包含 headtitleframeset 结构元素。

在标准文档中,包含有 headtitlebody 元素。在框架集文档中,包含有 headtitleframeset 元素。

文档中的所有元素必须正确嵌套:

<p>This is a <i>bad example.</p></i> <p>This is a <i>good example.</i></p>

生成正确嵌套的代码,并且在清理 XHTML 时更正代码中不是由 Dreamweaver 生成的嵌套。

所有元素和属性名称必须为小写。

在它所生成的 XHTML 代码中以及在清理 XHTML 时,不论您设置的标签和属性大小写首选参数如何,都强制使 HTML 元素和属性名称成为小写。

每个元素都必须有结束标签,除非在 DTD 中将其声明为 EMPTY。

在它所生成的代码中并且在清理 XHTML 时插入结束标签。

空元素必须有结束标签,或者开始标签必须以 /> 结束。例如,<br> 无效;正确的形式为 <br></br><br/>。以下元素为空元素:areabasebasefontbrcolframehrimginputisindexlinkmetaparam

为了向后兼容不支持 XML 的浏览器,/> 前必须有一个空格(例如 <br />,而不是 <br/>)。

在它所生成的代码中以及在清理 XHTML 时,如果插入空元素,则在空标签中的结束斜杠添加一个 空格。

属性无法进行最小化;例如,<td nowrap> 无效;正确的形式为 <td nowrap="nowrap">

它会影响以下属性:checkedcompactdeclaredeferdisabledismapmultiplenoresizenoshadenowrapreadonlyselected

在它所生成的代码中以及在清理 XHTML 时,插入完整的属性值对。

请注意:如果 HTML 浏览器不支持 HTML 4,则当这些布尔属性以完整形式出现时,该浏览器可能无法解释这些属性。

所有的属性值必须用引号引起来。

在它所生成的代码中以及在清理 XHTML 时,将属性值用引号引起来。

以下元素必须具有 id 属性和 name 属性:aappletformframeiframeimgmap。 例如,<a name="intro">Introduction</a> 无效;正确的形式为

<a id="intro">Introduction</a><a id="section1" name="intro"> Introduction</a>

在 Dreamweaver 所生成的代码中以及在清理 XHTML 时,只要属性检查器设置 name 属性,就会将 nameID 属性设置为相同的值。

对于具有枚举类型的值的属性,值必须为小写。

枚举类型的值是来自指定的允许值列表中的值;例如,align 属性具有以下允许值:centerjustifyleftright

在它所生成的代码中以及在清理 XHTML 时,强制枚举类型的值成为小写。

所有脚本和样式元素都必须具有 type 属性。

(自 HTML 4 开始已经要求 script 元素具有 type 属性,而 language 属性在此期间则使用的越来越少。)

在它生成的代码中以及在清理 XHTML 时,设置 script 元素的 typelanguage 属性, style 元素的 type 属性。

所有 imgarea 元素都必须具有 alt 属性。

在它生成的代码中设置这些属性,并且在清理 XHTML 时报告缺少的 alt 属性。