XHTML 与 HTML 之间的差异
由于XHTML是一个XML应用程序,所以必须改变在基于SGML的HTML 4中完全合法的某些实践。在前面的章节中你已经看到了XHTML语法,所以XHTML和HTML之间的差别非常明显。以下是XHTML和HTML的比较。
比较图表
|
HTML | XHTML |
---|---|---|
介绍(来自维基百科) | HTML(超文本标记语言)是创建可以在Web浏览器中显示的网页和其他信息的主要标记语言。 |
XHTML(可扩展超文本标记语言)是一系列XML标记语言,它们反映或扩展了广泛使用的超文本标记语言(HTML)的版本,即HTML页面的编写语言。 |
文件扩展名 | .html,.htm | .xhtml,.xht,.xml,.html,.htm |
互联网媒体类型 | text / html | application/ XHTML + xml |
开发商 | W3C和WHATWG | 万维网联盟 |
格式的类型 | 文档文件格式 | 标记语言 |
从...延伸 | SGML | XML,HTML |
代表 | 超文本标记语言 | 可扩展的超文本标记语言 |
应用 | 标准通用标记语言(SGML)的应用。 | XML的应用 |
功能 | 网页是用HTML编写的。 | 扩展版本的HTML更严格,基于XML。 |
性质 | 灵活的框架需要宽松的HTML特定的分析器。 | XML的限制性子集,需要使用标准的XML解析器进行解析。 |
起源 | 由Tim Berners-Lee于1987年提出。 | 2000年万维网联盟建议书。 |
版本 | HTML 2,HTML 3.2,HTML 4.0,HTML 5。 | XHTML 1,XHTML 1.1,XHTML 2,XHTML 5。 |
XHTML文档必须完善
结构良好性是XML引入的一个新概念。实质上,这意味着所有元素都必须有结束标记,并且必须正确嵌套它们。
正确:嵌套的元素
<p>这是一个强调的<em>段落</em>。</p>
错误:重叠的元素
<p>这是一个强调的 <em>段落。</p></em>
元素和属性必须小写
XHTML文档必须使用小写字母表示所有的HTML元素和属性名称。这种区别是必要的,因为XHTML文档被假定为XML文档,XML是区分大小写的。例如,<li>和<LI>是不同的标签。
所有元素都需要结束标记
在HTML中,某些元素可以省略结束标记。但XML不允许省略结束标记。
正确:终止的元素
<p>这是一个段落。</p><p>这是另一个段落</p>
<br><hr/>
错误:未终止的元素
<p>这是一个段落。<p>这是另一个段落。
<br><hr>
必须始终引用属性值
所有属性值(包括数值)都必须加引号。
正确:引用属性值
<td rowspan="3">
不正确:未引用的属性值
<td rowspan=3>
属性简写
XML不支持属性简写。 Attribute-value 属性-值必须全部写入。属性名称(如compact和checked)不能在没有指定值的元素中出现。
正确:非简写的属性
<dl compact="compact">
错误:简写的属性
<dl compact>
属性值中的空白处理
当浏览器处理属性时,它执行以下操作 -
- 带前导和尾随空格。
-
将一个或多个空格字符(包括换行符)映射到单个单词空间中。
脚本和样式元素
在XHTML中,脚本(script)和样式(style)元素不应该直接存在“<”和“&”字符; 他们被视为标记的开始。诸如“<”和“&”的实体被XML处理器识别为实体引用,用于分别显示“<”和“&”字符。
在CDATA标记部分内包装脚本或样式元素的内容可以避免这些实体的扩展。
<script type="text/JavaScript">
<![CDATA[
... 转义的VB或java脚本在这里... ...
]]>
</script>
另一种方法是使用外部脚本和样式文档。
带有id和name属性的元素
XHTML推荐用id属性替换name属性。请注意,在XHTML 1.0中,这些元素的名称属性已被正式弃用,并将在后续版本的XHTML中被删除。
具有预定义值集的属性
HTML和XHTML都有一些具有预定义和有限值的属性。例如,输入元素的type属性。在HTML和XML中,这些被称为枚举属性。在HTML 4下,这些值的解释是不区分大小写的,所以TEXT的值相当于文本的值。
在XHTML下,这些值的解释是区分大小写的,所有这些值都是以小写字母来定义的。
作为十六进制值的实体引用
HTML和XML都允许使用十六进制值引用字符。在HTML中,这些引用可以使用&#Xnn; 或者&#xnn; 而且它们是有效的,但在XHTML文档中,只能使用小写字母,例如&#xnn; 。
<html>元素是必须的
所有的XHTML元素都必须嵌套在<html>根元素中。所有其他元素都可以有子元素,它们必须成对并正确嵌套在其父元素中。
基本的文件结构是:
<!DOCTYPE html....>
<html>
<head> w3cschool编程教程 </head>
<body> www.w3cschool.cn </body>
</html>
最后w3cschool.cn做个总结
- 标签与属性都要小写
- 别用
name
用id
- 标签不能重叠,但可以嵌套
- 标签都要有始有终,要么以
</p>
形式结束,要么以<br />
形式结束
- 每个属性都要有属性值,并且属性值要在双引号中
关于XHTML语法将在下节XHTML 语法规则中做详细说明