HTML 向 XHTML1.0 兼容性指导

1 处理说明

一些用户代理程序会显示处理说明。但是,注意当文档中没有XML声明时,文档只能用缺省的字符编码UTF-8 或 UTF-16。

2 空元素

在空元素结束符 / 和 > 前加一个空格,如 <br />,<hr /> 和 <img src="karen.jpg" alt="Karen" />. 还有,使用最小化的标签语法,如<br />,因为另一种XML允许的语法 <br></br> 在很多现有用户代理程序会导致不可靠的结果。

3 元素最小化和空元素内容

内容模型不是空的元素,在为空的场合(如空title或空段落),不要用最小化形式(如 用 <p> </p>,不用 <p />).

4 嵌入的样式表和Script

如果你的样式表使用 < 或 & 或 ]]> 或 --,用外部样式表。如果你的script用 < 或 & 或 ]]> 或 --,用外部script。 注意XML分析程序会在不告知的情况下除去注释的内容。因此,以前用注释的方法”隐藏”script和样式表的习惯使文档可以向后兼容,但是可能在基于XML的执行时不能按预期工作。

5 在属性值内部分行

在属性值中避免使用分行和多个空格符。用户代理程序处理这些情况时不一致。

6 Isindex

在文档的head部分不要使用超过一个 isindex 元素. isindex 元素不被赞成使用,赞成使用input元素。

7 lang 和 xml:lang 属性

在指定元素的语言时同时使用 lang 和 xml:lang 属性。xml:lang 属性在前。

8 片段标识符

在 XML中,以"#foo"形式结束片段标识符URI [RFC2396] 不是指元素有一个属性name="foo",而是指元素有一个被定义为ID类型的属性,如,HTML 4中的id属性。很多HTML客户程序不以这种方式支持ID类型属性,所以,可以将相同的值同时附给这两个属性,以保证最大程度的向后和向前兼容。(如 <a id="foo" name="foo">...</a>).

此外,因为ID类型属性的合法值集比CDATA类型属性的值集小得多,name属性被改为NMTOKEN。这个属性被限制为只有和ID类型或XML1.0 2.5节中的Name产品同样的值。不幸的是,XHTML的DTD不能表示出这个限制。因为这个改变,在转换现有的HTML文档时要加以注意。 如果在转换时值可能会改变,这些属性的值在文档中必须是唯一的,有效的,任何对这些片段标识符的引用(不管是内部还是外部)必须更新。

最后,注意不赞成在 a,applet,form,frame,iframe,img,和 map 元素中使用name属性,在以后的XHTML版本中,它将被去除。

9 字符编码

要指定文档中的字符编码,同时在xml声明中使用编码属性指定 (如. <?xml version="1.0" encoding="EUC-JP"?>) 和在meta中用 http-equiv 语句 (如 <meta http-equiv="Content-type" content='text/html; charset="EUC-JP"' />).xml处理指令的编码属性值在前。

10 布尔属性

一些HTML用户代理程序在布尔属性以完全(非最小化)形式出现时不能解释它们,而这是XML1.0必须的。注意这个问题不会影响用户代理程序对HTML 4的兼容。包括以下一些属性: compact,nowrap,ismap,declare,noshade,checked,disabled,readonly,multiple,selected,noresize,defer.

11 文档对象模型和 XHTML

文档对象模型 level 1 推荐标准 [DOM] 定义XML和HTML 4的文档对象模型。 HTML 4 文档对象模型规定HTML元素名和属性名以大写形式返回。XML文档对象模型规定元素名和属性名以它们被指定的形式返回。在 XHTML 1.0中,元素和属性指定为小写形式。对这个显著的差别可以用两种方式处理:

通过DOM访问text/html internet媒体类型XHTML文档的应用程序可以使用HTML DOM,还可以依赖这些界面返回的大写的元素名和属性名。
通过DOM访问text/xml或application/xml internet媒体类型XHTML文档的应用程序也可以使用XML DOM. 元素名和属性名将以小写形式返回。 并且,一些 XHTML 元素可以也可以不出现在对象树中,因为在内容模型中它们是可选的(如table中的 tbody 元素). 在HTML 4中,一些元素可以允许被最小化以至于它们的开始标签和结束标签都被忽略(SGML特性),所以可以发生。但是在XML中不行。XHTML使元素成为可选的,而不是要由文档作者来插入外来元素。相应地,应用程序需要适应这一点。

12 在属性值中使用 &

在属性值中含有&符号时,它必须用字符实体引用来表示 (即 "&"). 例如,当一个元素的 href 属性指向一个接收参数的 CGI脚本时,它必须表示为http://my.site.dom/cgi-bin/myscript.pl?class=guest&name=user,而不是 http://my.site.dom/cgi-bin/myscript.pl?class=guest&name=user.

13 层叠样式表和XHTML

层叠样式表 level 2推荐标准 [CSS2] 定义style的属性,用于分析HTML和XML文档的树形结构。分析时的不通将导致不同的视觉或听觉效果,这依赖于使用的选择器。

下面的技术可以减少对文档的这种影响,而用不修改这两中媒体类型:

一、XHTML的CSS样式表应该用小写的元素和属性名。
二、在table中,tbody 元素会被HTML用户代理程序的分析器推断出,但是XML用户代理程序的分析器不会这么做。所以如果在CSS选择器中要被引用到,你应该总是明晰地加上tbody元素。
三、在XHTML 名址空间,用户代理程序将把”id”属性认作为一个ID类型的属性。因此,即使用户代理程序不能认出DTD,样式表也应该能够继续使用”#”简化选择器语法。
四、在XHTML 名址空间,用户代理程序将识别class属性,因此,样式表应该能构继续使用”.”简化选择器语法。
五、CSS 定义HTML和XML文档的不同一致性标准; 在XHTML文档以HTML表达时,用HTML规则,在XHTML文档以XML表达时,用XML规则。

(0)

相关推荐

  • HTML 向 XHTML1.0 兼容性指导

    1 处理说明 一些用户代理程序会显示处理说明.但是,注意当文档中没有XML声明时,文档只能用缺省的字符编码UTF-8 或 UTF-16. 2 空元素 在空元素结束符 / 和 > 前加一个空格,如 <br />,<hr /> 和 <img src="karen.jpg" alt="Karen" />. 还有,使用最小化的标签语法,如<br />,因为另一种XML允许的语法 <br></br>

  • 使用XHTML1.0 Strict中需要特别注意的地方

    永远使用小写字母,让引号伴随者属性: 所有元素和属性的名字都必须使用小写,所有属性值必须使用双引号. 错误: <A HREF="index.html" CLASS=internal>  正确: <a href="index.html" class="internal"> 关闭所有的元素:在HTML中一些元素没有必要被关闭.当下一个元素开始的时候,上一个元素就自动被关闭.XHTML中是不允许这样的.所有元素都必须被关闭,即使

  • XHTML 1.0:标记新的开端

    新标准的熟悉和入门 内容: 还在用 HTML 编写文档?如果是的话,就不符合当前标准了.2000 年 1 月 26 日,XHTML 1.0 成为万维网联盟(W3C) 的建议.根据 W3C,HTML 不再是 Web 标记标准.取而代之,XHTML 1.0 已替代旧宠儿,标志着通信技术令人兴奋的新时代已经来临. 那么,XHTML 1.0 到底是什么?对 Web 开发人员来说,它意味着什么?下面从 W3C 的描述讲起:XHTML 1.0 是 XML 应用程序的 HTML 再形成.这意味着,如果用 XH

  • 兼容性非常好的js右下角与漂浮广告代码

    兼容ie6 7 8 ,ff3.5 3.6,chrome 4.1.2,safari 重新修正 1.滚动时抖动的问题,主要体现在ff3.6上 2.加入了ie6下的固定 3.分成了两个块,xhtml,html解析 4.随着屏幕大小而变动 兼容ie6 7 8 ff3.5 3.6 chrome 4.1.2 safari xhtml1.0解析 Untitled Document html,body{ padding:0; margin:0; } 我在随平滚 我静止不动 function scrollx(p)

  • 怎么改善现有网站

    我们大部分的设计师依旧在采用传统的表格布局.表现与结构混杂在一起的方式来建立网站.学习使用XHTML+CSS的方法需要一个过程,使现有网站符合网站标准也不可能一步到位.最好的方法是循序渐进,分阶段来逐步达到完全符合网站标准的目标.如果你是新手,或者对代码不是很熟悉,也可以采用遵循标准的编辑工具,例如Dreamweaver MX 2004,它是目前支持CSS标准最完善的工具. 1.初级改善 为页面添加正确的DOCTYPE  很多设计师和开发者都不知道什么是DOCTYPE,DOCTYPE有什么用.D

  • 重构、标准、布局

    近来大家总是在标准上争论不休,其实,这些问题一些相关文章已经说得很明白了. 以下我就谈谈我的看法.本帖子有太多的"我认为",说明了我只是想把我的想法拿出来跟大家商榷,或许有太多不对的地方,也请大家一一指出. 1.我对web标准的理解 所谓的web标准,在一些教程文章上已经得到结论:结构化标准(XHTML.XML).表现标准(CSS.XSLT?).行为标准(DOM.ECMAScript).这些东西在网上一搜一大把,在这里我就不多说了.我只说我自己的想法: a.标准是相对的,有其一定的局限

  • XHTML标签的自关闭写法的坏处分析

    如果你熟悉XML相关的开发,可能也就习惯于这种写法,想着XML中任何不含子节点的元素都可以这样写,那么XHTML中没有内容的标签也都可以这样写.XHTML中理论上当然允许任何标签以自关闭的方法来书写,然而浏览器兼容性却带来了新问题,那就是IE无法正确识别某些标签的自关闭写法. 请尝试输入以下XHTML代码并在IE中浏览:<p>hello <script type="text/javascript" /> world</p>,你会发现只能看到前面的he

  • 19款Javascript富文本网页编辑器

    1. AIE (演示地址) AIE是一个开源的ajax图片编辑器,基于ExtJS与PHP ImageMagick开发,易于与博客/相册等其它应用相集成.提供调整图片大小,裁剪图片,旋转/翻转图片,应用滤镜,添加文本,添加水印等功能. 2. MarkitUp (演示地址) MarkitUp是一个轻量级,可定制,灵活的WYSIWYG Editor. 3. SmartMarkUP SmartMarkUP是一个轻量级,强大的JavaScript library,它能够将Textarea控件转换成富文本编

  • 初学web标准的几个误区

    非常高兴地看到很多设计师开始关注和尝试使用web标准制作网页.但从网友们的问题和制作中发现几个问题,在这里特别提醒一下: 1.不是为了通过校验才标准化.web标准的本意是实现内容(结构)和表现分离,就是将样式剥离出来放在单独的css文件中.这样做的好处是可以分别处理内容和表现,也方便搜索和内容的再利用. W3C校验仅仅是帮助你检查XHTML代码的书写是否规范,CSS的属性是否都在CCS2的规范内.代码的标准化仅仅是第一步,不是说通过的校验,我的网页就标准化了.我们不是为了虚名,或者向别人炫耀:"

  • 第12天:校验及常见错误

    辛苦了好多天,我们努力学习使用XHTML+CSS来重新设计我们的网站.那么我们如何知道自己制作的页面真的符合web标准?W3C和一些志愿者网站提供了在线校验程序,来帮助我们检查页面是否符合标准,并提供了修正错误的帮助信息.这些校验非常有用,是我调试页面第一步要做的事情. 1.XHTML校验 校验网址:http://validator.w3.org/ 校验方式:网址校验.文件上传校验 校验成功,会显示"This Page Is Valid XHTML 1.0 Transitional!"

随机推荐