- XHTML 教程
- XHTML - 首页
- XHTML - 简介
- XHTML - 语法
- XHTML - 对比
- XHTML - 文档类型
- XHTML - 属性
- XHTML - 事件
- XHTML - 1.1 版本
- XHTML - 提示与技巧
- XHTML - 验证
- XHTML - 总结
- XHTML 有用资源
- XHTML - 快速指南
- XHTML - 有用资源
XHTML vs HTML
由于 XHTML 是一个 XML 应用程序,因此在基于 SGML 的 HTML 4 中完全合法的某些实践必须更改。您已在上一章中看到了 XHTML 语法,因此 XHTML 和 HTML 之间的差异非常明显。以下是 XHTML 和 HTML 的比较。
XHTML 文档必须是格式良好的
格式良好是 XML 引入的一个新概念。本质上,这意味着所有元素都必须有结束标签,并且必须正确嵌套它们。
正确:嵌套元素
<p>Here is an emphasized <em>paragraph</em>.</p>
错误:重叠元素
<p>Here is an emphasized <em>paragraph.</p></em>
元素和属性必须小写
XHTML 文档必须对所有 HTML 元素和属性名称使用小写字母。这种差异是必要的,因为 XHTML 文档被认为是一个 XML 文档,而 XML 区分大小写。例如,<li> 和 <LI> 是不同的标签。
所有元素都需要结束标签
在 HTML 中,某些元素允许省略结束标签。但 XML 不允许省略结束标签。
正确:已终止的元素
<p>Here is a paragraph.</p><p>here is another paragraph.</p> <br><hr/>
错误:未终止的元素
<p>Here is a paragraph.<p>here is another paragraph. <br><hr>
属性值必须始终加引号
所有属性值,包括数值,都必须加引号。
正确:带引号的属性值
<td rowspan="3">
错误:未加引号的属性值
<td rowspan=3>
属性最小化
XML 不支持属性最小化。必须完整编写属性值对。例如 compact 和 checked 等属性名称不能在元素中出现而没有指定其值。
正确:非最小化属性
<dl compact="compact">
错误:最小化属性
<dl compact>
属性值中的空格处理
当浏览器处理属性时,它会执行以下操作:
去除前导和尾随空格。
将一个或多个空格字符(包括换行符)的序列映射到单个单词间空格。
脚本和样式元素
在 XHTML 中,script 和 style 元素不应直接包含“<”和“&”字符,如果存在;则它们被视为标记的开始。XML 处理器将诸如“<”和“&”之类的实体识别为实体引用,以分别显示“<”和“&”字符。
将脚本或样式元素的内容包装在 CDATA 标记部分中可以避免展开这些实体。
<script type="text/JavaScript">
<![CDATA[
... unescaped VB or Java Script here... ...
]]>
</script>
另一种方法是使用外部脚本和样式文档。
带有id和name属性的元素
XHTML 建议用id属性替换name属性。请注意,在 XHTML 1.0 中,这些元素的name属性正式已弃用,并且将在后续版本的 XHTML 中删除。
具有预定义值集的属性
HTML 和 XHTML 都有一些属性具有预定义和有限的值集。例如,input元素的type属性。在 HTML 和 XML 中,这些称为枚举属性。在 HTML 4 中,这些值的解释不区分大小写,因此TEXT的值等效于text的值。
在 XHTML 中,这些值的解释区分大小写,因此所有这些值都定义为小写。
实体引用作为十六进制值
HTML 和 XML 都允许使用十六进制值引用字符。在 HTML 中,可以使用&#Xnn;或&#xnn;进行这些引用,它们都是有效的,但在 XHTML 文档中,必须仅使用小写版本,例如&#xnn;。
<html> 元素是必须的
所有 XHTML 元素都必须嵌套在<html>根元素内。所有其他元素都可以有子元素,这些子元素必须成对出现,并正确嵌套在其父元素内。基本的文档结构是:
<!DOCTYPE html....> <html> <head> ... </head> <body> ... </body> </html>