📜  XHTML与HTML

📅  最后修改于: 2020-10-16 06:59:37             🧑  作者: Mango


由于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区分大小写。例如,

  • 是不同的标记。

    所有元素都需要结束标签

    在HTML中,允许某些元素省略结束标记。但是XML不允许省略结束标签。

    正确:终止元素

    Here is a paragraph.

    here is another paragraph.



    错误:未终止的元素

    Here is a paragraph.

    here is another paragraph.


    必须始终引用属性值

    所有属性值(包括数值)必须加引号。

    正确:引号属性值

    
    

    不正确:未引用的属性值

    
    

    属性最小化

    XML不支持属性最小化。属性值对必须完整书写。在未指定其值的情况下,属性名称(例如compact和checked)不能出现在元素中。

    正确:非最小化的属性

    错误:最小化的属性

    属性值中的空格处理

    浏览器处理属性时,将执行以下操作-

    • 去除前导和尾随空格。

    • 将一个或多个空白字符(包括换行符)的序列映射到单个单词间空间。

    脚本和样式元素

    在XHTML中,脚本和样式元素(如果存在)不应直接包含“ <”和“&”字符。然后将它们视为标记的开始。 XML处理器将诸如“ <”和“&”之类的实体识别为实体引用,以分别显示“ <”和“&”字符。

    在CDATA标记的部分中包装脚本或样式元素的内容可避免这些实体的扩展。

    
    

    一种替代方法是使用外部脚本和样式文档。

    具有idname属性的元素

    XHTML建议将name属性替换为id属性。请注意,在XHTML 1.0中,这些元素的name属性已正式弃用,并将在以后的XHTML版本中将其删除。

    具有预定义值集的属性

    HTML和XHTML都有一些属性,这些属性具有预定义的和有限的值集。例如,输入元素的type属性。在HTML和XML中,这些称为枚举属性。在HTML 4下,这些值的解释不区分大小写,因此TEXT的值等效于text的值。

    在XHTML下,这些值的解释区分大小写,因此所有这些值均以小写形式定义。

    实体引用作为十六进制值

    HTML和XML都允许使用十六进制值来引用字符。在HTML中,可以使用&#Xnn;进行这些引用&#xnn;并且它们是有效的,但是在XHTML文档中,您只能使用小写版本,例如&#xnn;。

    元素是必须的

    所有XHTML元素都必须嵌套在根元素内。所有其他元素可以具有子元素,这些子元素必须成对并且正确嵌套在其父元素中。基本文件结构是-

    ... 
        ...