以前在网上零零碎碎的看过一些关于xhtml的文章,但总觉得不踏实,感觉学习不够系统。今日特在w3c上翻出了这篇介绍xhtml1.0的文章,配合网上部分中文翻译版本,详细的读了一遍.为加深印象,先总结于此:
1,什么是XHTML?XHTML有什么优点?
XHTML系列文档基于XML,最终被设计用来与基于XML的用户代理程序一同工作。它是由HTML4再生和发展而来。
XHTML1.0是xhtml家族的第一个成员,它是将HTML4的三种文档应用到XML1.0发展而来。作为一种语法,它的内容既符合XML,又能被HTML4的用户代理程序所识别。开发这将其文档转换为XHTML有如下益处:
1,XHTML文档遵从XML,这样用标准的XML工具很容易查看,编辑,检验它们。
2,XHTML可以在HTML4用户代理程序中使用,也能在新的XHTML用户代理程序中使用,而且
可以在后者中达到与前者相同或更好的显示效果。
3,XHTML中的程序可以是HTML的DOM,也可以是XML的DOM。
4,随着XML的发展,XHTML1.0文档更有可能运用到各种XHTML环境中。
2,XHTML的标准定义:
1,它必须经过W3C关于XHTML1.0的三种DTD之一(如下所示)的验证。
<! DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd" >
<! DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"DTD/xhtml1-transitional.dtd" >
<! DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"DTD/xhtml1-frameset.dtd" >
2,文档的根元素必须是<html>.
3,文档的根元素必须用xmlns属性指明其名字空间(namespace),XHTML的名字
空间在http://www.w3.org/1999/xhtml中定义。
4,根元素之前必须有一个DOCTYPE声明,DOCTYPE中声明的标识符必须引用以上三种DTD中的一种。
3,与HTML4的区别:
1,文档编排良好,元素必须适当的嵌套。
正确:嵌套元素。
<p>here is an emphasized <em>paragraph</em>.</p>
不正确:层叠元素。
<p>here is an emphasized <em>paragraph.</p></em>
2,元素和属性名称必须小写。
对所有HTML元素和属性名,XHTML 文档必须使用小写。 因为XML是大小写敏感的,所以这个差别是必须的。如 <li> 和 <LI> 是不同的标签。
3,对于非空元素,必须使用结束标签。
在基于 SGML的 HTML 4 中,一些隐含结束意义的元素允许忽略结束标签。而在基于XML的XHTML中,这种忽略不被允许。除了在DTD中被声明为空的元素,所有元素必须有结束标签。
正确:结束了的元素。
<p>here is a paragraph.</p><p>here is another paragraph.</p>
不正确:未结束元素。
<p>here is a paragraph.<p>here is another paragraph.
4,属性值必须在引号中。
所有的属性必须用引号,即使是数字。
正确:在引号中的属性值
<table rows="3">
不正确:不在引号中的属性值。
<table rows=3>
5,每个属性必须包含一个属性值。
XML 不支持属性最小化. 属性值对必须写全。象compact,checked这样的属性名不能不指定属性值而在元素中出现。
正确:没有最小化的属性
<dl compact="compact">
不正确:最小化属性
<dl compact>
6,空元素起始标签必须以“/>”结束。
空元素要么必须有结束标签,要么起始标签以/>结束. 例如,<br/>或<hr></hr>. 请参看HTML兼容性指导 HTML Compatibility Guidelines 中的信息,以保证向后兼容HTML 4用户代理程序
正确:结束的空元素
<br/><hr/>
错误:未结束的空标签
<br><hr>
7,Style和Script元素内容应该用“<![CDATA[”和“]]>”记号包含或使用外部文件。
在XHTML中,script和style元素声明为#PCDATA内容形式,因此,< 和 & 被看作是标识的开始,<和& 这样的实体被XML处理程序看作为实体引用而分别被认为是< 和 & . 将script和style元素的内容包裹在CDATA记号部分中避免了这些实体的扩张。
<script>
<![CDATA[
... unescaped script content ...
]]>
</script>
CDATA
部分被 XML 处理程序识别,是文档对象模型中一个结点。请参看1.3节Section 1.3的DOM LEVEL 1推荐标准[DOM]。
替代的方式是使用外部script和style文档。
8,具有 'id' 和 'name' 属性的元素。
HTML 4 定义了name属性的元素有 a,applet,form,frame,iframe,img,and map. HTML 4还引入了 id 属性. 这两个属性都是被设计作为片段标识符。
在XML中,片段标识符是ID类型,每个元素只能有一个ID类型的属性。因此,在XHTML1.0中,id属性被定义为ID类型。为保证XHTML1.0文档是结构良好的XML文档,在定义一个片段标识符时,XHTML文档必须使用id属性,即使是对那些以前用name属性的元素。请参看 HTML Compatibility Guidelines 的信息,确保XHTML文档以text/html媒体类型使用时,这些”锚”能向后兼容。
注意,在XHTML 1.0中,name 属性不被正式支持,在以后的XHTML版本中将被删除。
4,HTML兼容性指导(原文摘录)
================================
C.1 处理说明
一些用户代理程序会显示处理说明。但是,注意当文档中没有XML声明时,文档只能用缺省的字符编码UTF-8 或 UTF-16。
C.2 空元素
在空元素结束符
/ 和 > 前加一个空格,如 <br />,<hr /> 和 <img src="karen.jpg" alt="Karen" />. 还有,使用最小化的标签语法,如<br />,因为另一种XML允许的语法 <br></br> 在很多现有用户代理程序会导致不可靠的结果。
C.3 元素最小化和空元素内容
内容模型不是空的元素,在为空的场合(如空title或空段落),不要用最小化形式(如 用 <p> </p>,不用 <p />).
C.4 嵌入的样式表和Script
如果你的样式表使用
< 或 & 或 ]]> 或 --,用外部样式表。如果你的script用 < 或 & 或 ]]> 或 --,用外部script。 注意XML分析程序会在不告知的情况下除去注释的内容。因此,以前用注释的方法”隐藏”script和样式表的习惯使文档可以向后兼容,但是可能在基于XML的执行时不能按预期工作。
C.5 在属性值内部分行
在属性值中避免使用分行和多个空格符。用户代理程序处理这些情况时不一致。
C.6 Isindex
在文档的head部分不要使用超过一个
isindex 元素. isindex 元素不被赞成使用,赞成使用input元素。
C.7
lang 和 xml:lang 属性
在指定元素的语言时同时使用
lang 和 xml:lang 属性。xml:lang 属性在前。
C.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版本中,它将被去除。
C.9 字符编码
要指定文档中的字符编码,同时在xml声明中使用编码属性指定 (如. <?xml version="1.0" encoding="EUC-JP"?>) 和在meta中用 http-equiv 语句 (如 <meta http-equiv="Content-type" content='text/html; charset="EUC-JP"' />).xml处理指令的编码属性值在前。
C.10 布尔属性
一些HTML用户代理程序在布尔属性以完全(非最小化)形式出现时不能解释它们,而这是XML1.0必须的。注意这个问题不会影响用户代理程序对HTML 4的兼容。包括以下一些属性:
compact,nowrap,ismap,declare,noshade,checked,disabled,readonly,multiple,selected,noresize,defer.
C.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使元素成为可选的,而不是要由文档作者来插入外来元素。相应地,应用程序需要适应这一点。
C.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.
C.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规则。
转载至:http://www.cnitblog.com/yemoo/archive/2007/01/05/20067.html
分享到:
相关推荐
这个文件可以作为开发者创建符合标准的XHTML文档的起点,或者用于学习和理解XHTML 1.0 Strict规范。 总结来说,这个模板是XHTML 1.0 Strict的一个实例,强调结构化、语义化和标准化,支持多种字符编码,旨在提升...
XHTML1.0遵循XML的规则,要求所有的元素和属性都正确关闭,避免空元素,比如` `而非` `。此外,属性值必须用引号括起来,如`<img src="image.jpg" alt="Description">`。 总的来说,HTML4.01和XHTML1.0为...
首先,`xhtml1.0 strict reference.doc` 可能是一份关于XHTML 1.0 Strict DTD(Document Type Definition)的参考文档。XHTML 1.0 Strict 是XHTML的一个版本,它遵循严格的语法规则,强调内容和表现的分离,禁止使用...
总结,XHTML1-transitional.dtd是为了帮助开发者从HTML4向XHTML1.0平稳过渡的一个重要工具。虽然它保留了某些非结构性元素,但鼓励开发者逐步适应更严格的标准。在实践中,我们应该利用它提供的过渡性支持,同时积极...
总结来说,"国外优秀全站XHTML模板"提供了丰富的设计元素和布局方案,涵盖了现代网页开发的关键技术,无论是对于初学者还是经验丰富的开发者,都是一个宝贵的参考资料。通过深入研究和实践,你可以掌握构建专业网站...
### XHTML相关学习资料 #### 一、XHTML概述与起源 XHTML,全称为Extensible HyperText Markup Language,即“可扩展超文本标记语言”,是HTML的一种演变形式,结合了XML的强大特性和HTML的易用性。XHTML的诞生旨在...
总结来说,"Xhtml手册官方标准(5合1)"是一份宝贵的资源,对于任何想要深入理解和实践XHTML的开发者来说,都是不可或缺的参考。通过学习并遵循这些标准,开发者可以创建更加健壮、可维护和无障碍的网页内容。
XHTML1.0和XHTML1.1是两个重要的版本,它们增强了对国际化和无障碍访问的支持。尽管在HTML5出现后,XHTML的使用频率有所下降,但了解其原理仍有助于编写更加严谨的HTML代码。 **CSS(Cascading Style Sheets)** ...
对于初学者而言,推荐使用过渡型DTD,因为它允许使用某些表现层的标记,便于学习和过渡到完全的XHTML标准。随着技能的提升,可以逐渐向严格型DTD过渡,实现内容与表现的完全分离。 **重要性再强调** - **内容解析...
XHTML 1.0提供了三种DTD声明,分别是过渡型、严格型和框架型。过渡型允许使用HTML4的一些表现层元素,适合初学者过渡使用;严格型则禁止使用表现层元素,鼓励更纯净的结构化HTML;框架型专为含有框架的页面设计。 ...
XHTML入门学习教程中,框架标签的使用是一个重要的概念,主要涉及到如何在浏览器的一个页面内同时展示多个网页。虽然现在框架结构已经不被推荐用于网站设计,但它仍然是学习Web开发历史和技术演进的一个重要环节。 ...
- XHTML1.0 Strict:`<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">` - XHTML1.0 Transitional:`<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML ...
总结,XHTML是现代Web开发的基础之一,它强化了HTML的规范性,提高了网页的质量和可访问性。理解和掌握XHTML的语法、结构和与其他技术(如CSS和JavaScript)的交互,对于任何Web开发者来说都是至关重要的。
《万维网英文课件:ch02-Introduction to XHTML》主要介绍了XHTML的基本概念、发展历程以及其与HTML的区别。XHTML是HTML的一种扩展...学习XHTML对于理解网页结构、编写可验证的代码以及实现更高效的数据交换至关重要。
4. **易用性**:通过减少复杂的格式要求,XHTML_MP降低了开发者的学习曲线,提高了开发效率。 #### 三、XHTML_MP的基本结构 XHTML_MP文档的基本结构通常包括以下部分: 1. **文档类型声明**:指定文档使用的XHTML...
### XHTML DIV CSS 教程知识点总结 #### 一、从 HTML 转向 XHTML ...学习 XHTML 和 CSS 的基础知识不仅可以帮助开发者更好地理解网页的工作原理, 还能提高开发效率, 创建出符合标准的高质量网站。
以上内容总结了DIV CSS学习笔记中的关键知识点,包括文档类型声明、CSS选择器、CSS引入方式、布局模型以及背景与边框设置。这些知识对于前端开发者来说至关重要,能够帮助他们创建结构良好、样式丰富的网页。
下面将详细介绍HTML 4.01和XHTML 1.0中的标签以及它们的功能,同时也简要提及脚本在网页设计中的应用。 HTML 4.01和XHTML 1.0是两种不同但相关的标记语言标准。HTML 4.01更注重实用性,而XHTML 1.0则是一种更严格、...