XHTML

XHTML 是 HTML 版的继承者,因 HTML 语法松散,对部分设备处理困难而产生,其语法更严格。多数浏览器可解析 XHTML,它与 CSS 结合能发挥威力。介绍了 XHTML 版本,阐述其语法要求,还对比了和 HTML 4 在文档结构、标签大小写等方面的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

 该图标由 W3C 提供,用于放置在通过 W3C 标记验证器 的XHTML文档中。
该图标由 W3C 提供,用于放置在通过 W3C 标记验证器 的XHTML文档中。

XHTML 是当前 HTML 版的继承者。HTML 语法要求比较松散,这样对网页编写者来说,比较方便,但对于机器来说,语言的语法越松散,处理起来就越困难,对于传统的计算机来说,还有能力兼容松散语法,但对于许多其他设备,比如手机,难度就比较大。因此产生了由 DTD 定义规则,语法要求更加严格的 XHTML。

大部分常见的浏览器都可以正确地解析 XHTML ,即使老一点的浏览器,XHTML 作为 HTML 的一个子集,许多也可以解析。也就是说,几乎所有的网页浏览器在正确解析 HTML 的同时,可兼容 XHTML。当然,从 HTML 完全转移到 XHTML ,还需要一个过程。

CSS (Cascading Style Sheets,层叠式样式表)结合后,XHTML 能发挥真正的威力;这使实现样式跟内容的分离的同时,又能有机地组合网页代码,在另外的单独文件中,还可以混合各种 XML 应用,比如 MathMLSVG

从 HTML 到 XHTML 过渡的变化比较小,主要是为了适应 XML 。最大的变化在于文档必须格式整齐,所有标签必须闭合,也就是说开始标签要有相应的结束标签。另外,XHTML 中所有的标签必须小写。而按照 HTML 2.0 以来的传统,大部分人都是将标签大写,这点两者的差异显著。在 XHTML 中,所有的参数值,包括数字,必须用双引号括起来。 (而在 SGML ,包括 HTML 中,引号不是必须的,当内容只是数字、字母及其他允许的特殊字符时,可以不用引号。) 所有元素,包括空元素,比如 img 、br ,也都必须闭合,实现的方式是在开始标签末尾加入斜扛,比如 <img … /><br />。省略参数,比如 <option selected>,也不允许,必须用 <option selected="selected">。两者的详细差别,可通过 [W3C XHTML 说明] 来查阅。

[ 编辑]

版本

至现时为止, XHTML 共有以下几个版本:

  • XHTML 1.0 Transitonal
  • XHTML 1.0 Strict
  • XHTML 1.0 Frameset
  • XHTML 1.1
  • XHTML Basic

其中,"XHTML 1.0 Transitonal" 是参照 "HTML 4.01 Transitional" 改编、"XHTML 1.0 Strict" 是参照 "HTML 4.01 Strict" 改编、"XHTML 1.0 Frameset" 是参照 "HTML 4.01 Frameset" 改编。

微软 Internet Explorer 5.0 所新增的 <ruby> 小字注解标签,在 XHTML 1.1 得到支援。(参看Ruby字符。)

[ 编辑]

语法

XHTML 语言必须符合 XML 的格式,例如, <br> 要写成 <br /> 、使用了 <p> 之后必须有一个 </p> 以结束段落。而且, XHTML 标签必须使用小写字母,如 <br /> 不能写为 <BR /> 、而每一个属性都必须使用引号包住,如必须使用 <img src="abc.jpg" /> 而不能使用 <img src=abc.jpg> 。这些做法的目的,是使一个 XHTML 网页能够被网页浏览器正确及较快地编译

[ 编辑]

和HTML 4的区别

(翻译自[W3C XHTML 说明]) 4. 和HTML 4的区别 这部分涉及内容广泛. XHTML是XML的一种应用,基于这一事实。那些在以SGML为基础的HTML 4[HTML 4]中完全合法的用法应当被改变。 4.1. 文档应该具有良好的结构 结构化良好 是由[XML]引入的一个新概念。也就是说所有的元素都必须有结束标签或者以特殊的方式书写(如下所述),而且所有的标签必须合理地嵌套。 尽管如此,交叉使用在SGML中仍然是合法的,而且在现有的浏览器中也能够被广泛接受。 正确的:元素嵌套

here is an emphasized paragraph.

错误的:元素交叉

here is an emphasized paragraph.

4.2. 元素名和属性必须统一小写

XHTML 文档把所有的 HTML 元素名和属性名都小写。这个区别是必须的,因为 XML 是大小写敏感的。比如,

  • 是完全不同的两个标签。 4.3. 对于非空标签,也需要结束标签 基于 SGML 的 HTML 4 里面,允许特定的标签省略结束标签;这些元素暗含有结束标记。XML 不允许省略结束标记。所有元素包括在DTD中声明为空的标签都必须有结束标签。在DTD中声明为空的元素可以用结束标签 或者 使用空元素速记法(参见 空元素). 正确的:结束的元素

here is a paragraph.

here is another paragraph.

错误的:没有结束的元素

here is a paragraph.

here is another paragraph. 4.4. 属性值必须总是使用引号包裹 所有的属性值都必须使用引号包含,包括那些以数值类型出现的。 正确的:属性值使用引号

错误的:属性值没有使用引号

4.5. 属性简化 XML不支持属性简化,属性值对必须书写完整。属性名,像compact和checked在没有指定具体值的情况下不能够使用 does not support attribute minimization. Attribute-value pairs must be written in full. Attribute names such as compact and checked cannot occur in elements without their value being specified. 正确的:没有简化属性

错误的:简化属性
4.6. 空元素

空元素必须有一个结束标签,或者用 /> 来结束开始标签。例如,
或者

。关于向下兼容HTML 4用户终端的信息参见HTML HTML 兼容性指南
正确的:结束空标签




错误的:没有结束空标签




4.7. 属性值中空白字符的处理 当客户端在处理属性时,它们依据的是[XML]的章节 3.3.3 • 祛除前缀和后缀的空白字符。 • 将一个或多个空白字符序列映射为单个词间空格。 4.8. 脚本和样式元素 在XHTML里面,脚本和样式的元素被声明为具有#PCDATA内容。因此,<和&会被认为是标记的开始,另外<和&会被认为XML解释器认为是实体映射被分别解释成为<和&。从而将脚本或者样式元素包裹在CDATA标记的部分以避免这些实体扩展。 <script type="text/javascript"> <![CDATA[ ... unescaped script content ... ]]> </script> 在文档对象模型中,CDATA 部分被XML解释器认为是节点,参见文档对象模型章节1.3的第一级别推荐[DOM]。 一种替代方法就是使用外部的脚本和样式文件。 4.9. SGML排斥 SGML赋予DTD作者将特定的元素排斥在某个元素之外的能力。此种限制(被称为排斥)在XML中是不可能的。 例如,HTML 4的严格文档类型描述禁止“a”作为子元素嵌套在其他“a”的内部。这在XML中是不可能检查出这种限制的。尽管这种限制无法在DTD中定义,也不要嵌套使用某些特定的元素。关于此类元素和不能嵌套使用的元素概览可以在标准的 元素限制 里找到。 4.10. 拥有“id”和“name”属性的元素 HTML 4定义了a, applet, form, frame, iframe, img, and map元素的name属性。HTML 4还引入了id属性。这两个属性被设计用作片段标识符。 在XML里面,片段标识符是ID类型的,而且每个元素只能拥有单一的ID类型的属性。所以,在XHTML 1.0中id属性被定义为ID类型。为了确保XHTML 1.0文档是构建优良的XML文档,XHTML 1.0文档在为以上所列元素定义片段标识符时必须使用id属性。当XHTML文档作为text/html媒体类型使用时,确保此类锚点的向后兼容性信息参见HTML兼容性指南。 注意:在XHTML 1.0中,不赞成此类元素拥有name属性,在XHTML的后续版本中将被去掉。 4.11. 拥有预设值的属性 有一些属性在HTML 4 和 XHTML中都有一套预设值(比如input元素的type属性)。在SGML和XML中,这些被称为枚举属性。在HTML 4例这些值的解释是 不分大小写 的,所以值TEXT等同于text。在XML里,这些值的解析是 区分大小写 的,在XHTML1中,所有的这些值定义为小写。 4.12. 十六进制值的实体映射 SGML 和 XML 都允许使用十六进制的数值来映射字符。在SGML离这些映射可以使用&#Xnn;或者&#xnn;。在XML文档中,必须使用小写的方式(比如,&#xnn;)

[ 编辑]

参看

[ 编辑]

外部连结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值