XHTML 入门教程 XHTML 与 HTML 之间的差异

2024-02-25 开发教程 XHTML 入门教程 匿名 3

由于XHTML是一个XML应用程序,所以必须改变在基于SGML的HTML 4中完全合法的某些实践。在前面的章节中你已经看到了XHTML语法,所以XHTML和HTML之间的差别非常明显。以下是XHTML和HTML的比较。

比较图表


HTML与XHTML比较图表

HTMLXHTML
介绍(来自维基百科)HTML(超文本标记语言)是创建可以在Web浏览器中显示的网页和其他信息的主要标记语言。
XHTML(可扩展超文本标记语言)是一系列XML标记语言,它们反映或扩展了广泛使用的超文本标记语言(HTML)的版本,即HTML页面的编写语言。
文件扩展名.html,.htm.xhtml,.xht,.xml,.html,.htm
互联网媒体类型text / htmlapplication/ XHTML + xml
开发商W3C和WHATWG万维网联盟
格式的类型文档文件格式标记语言
从...延伸SGMLXML,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做个总结


  • 标签与属性都要小写
  • 别用nameid

  • 标签不能重叠,但可以嵌套
  • 标签都要有始有终,要么以</p>形式结束,要么以<br />形式结束
  • 每个属性都要有属性值,并且属性值要在双引号中

关于XHTML语法将在下节XHTML 语法规则中做详细说明