由于XHTML是一个XML应用程序,因此必须更改在基于SGML的HTML 4中完全合法的某些实践.您已经在前一章中看到了XHTML语法,因此XHTML和HTML之间的差异非常明显.以下是XHTML和HTML之间的比较.
XHTML文档必须形成良好
格式良好是XML引入的新概念.从本质上讲,这意味着所有元素必须具有结束标记,并且必须正确嵌套它们.
正确:嵌套元素
Here is an emphasized paragraph.
不正确:重叠元素
Here is an emphasized paragraph.
元素和属性必须小写
XHTML文档必须使用小写字母表示所有HTML元素和属性名称.这种差异是必要的,因为假设XHTML文档是XML文档而XML是区分大小写的.例如,< li>和< LI>是不同的标签.
所有元素都需要结束标记
在HTML中,允许某些元素省略结束标记.但是XML不允许省略结束标记.
正确:终止元素
Here is a paragraph.
here is another paragraph.
错误:未终结元素
Here is a paragraph.
here is another paragraph.
必须始终引用属性值
必须引用包括数值的所有属性值.
正确:带引号的属性值
< td rowspan ="3">
不正确:不带引号的属性值
< td rowspan = 3>
属性最小化
XML不支持属性最小化.属性 - 值对必须完整写入.如果未指定其值,则元素名称(如紧凑和已检查)不会出现在元素中.
正确:非最小化属性
< dl compact ="compact">
不正确:最小化属性
< dl compact>
属性值中的空格处理
当浏览器处理属性时,它会执行以下操作;
剥去前导和尾随空格.
映射一个序列或更多空白字符(包括换行符)到单个字间空格.
脚本和样式元素
在XHTML中,脚本和样式元素不应直接包含"<"和"&"字符(如果存在);然后将它们视为标记的开始.诸如"<"和"&"之类的实体被XML处理器识别为实体引用,用于分别显示"<"和"&"字符.
包装内容CDATA标记部分中的脚本或样式元素避免扩展这些实体.
另一种方法是使用外部脚本和样式文档.
id 和 name 属性
XHTML建议用 id 属性替换 name 属性.请注意,在XHTML 1.0中,这些元素的 name 属性已被正式弃用,并将在后续版本的XHTML中删除.
属性与Pre定义的值集
HTML和XHTML都有一些具有预定义和有限值集的属性.例如, 输入 元素的 类型 属性.在HTML和XML中,这些称为枚举属性.在HTML 4下,这些值的解释不区分大小写,因此 TEXT 的值等于 text 的值.
在XHTML下,这些值的解释区分大小写,因此所有这些值都以小写形式定义.
实体引用为十六进制值
HTML和XML都允许使用十六进制值来引用字符.在HTML中,这些引用可以使用& #Xnn; 或& #xnn; 进行,并且它们是有效的,但在XHTML文档中,您必须使用小写仅限版本& #xnn; .
< html>元素必须
所有XHTML元素必须嵌套在< html>中根元素.所有其他元素都可以包含子元素,这些元素必须成对并正确嵌套在其父元素中.基本文档结构是 :
... ...