可扩展超文本标记语言:修订间差异

求闻百科,共笔求闻
添加的内容 删除的内容
(我来啦, replaced: 員 → 员, 內 → 内, 參考文獻 → 参考文献, 開 → 开 (4), 會 → 会, 處 → 处 (3), 務 → 务 (3), 語 → 语 (3), 構 → 构 (3), 將 → 将, 協 → 协, 調 → 调 (3), 來 → 来 (2), 義 → 义 (3), 對 → 对, 發 → 发 (4), 極 → 极, 譯 → 译, 類 → 类 (2), 稱 → 称 (6), 區 → 区, 為 → 为 (6), 於 → 于 (8), 種 → 种 (3), 瀏 → 浏 (2), 覽 → 览 (2), 據 → 据, 屬 → 属 (3), 議 → 议 (2), 電 → 电, 標 → 标 (8), 積 → 积, 實 → 实, 際 → 际, 並 → 并 (4), 後 → 后 (2), 確 → 确 (5), 現 → 现 (2), 腦 → 脑, 個 → 个 (11), 強 → 强 (2), 階 → 阶 (2), 遠 → 远 (2), 規 → 规, 註 → 注, 計 → 计, 擴 → 扩 (2), 結 → 结 (3), 繼 → 继 (2), 續 → 续 (2), 網 →…)
(撤销繁简转换)
标签回退
第1行: 第1行:
{{noteTA
{{noteTA
|1 = zh-hans:可扩展超文本标记语言; zh-hant:可延伸超文本言;
|1 = zh-hans:可扩展超文本标记语言; zh-hant:可延伸超文本言;
|G1 = IT
|G1 = IT
}}
}}
第22行: 第22行:
}}
}}


'''可扩展超文本标记语言'''({{lang-en|e'''X'''tensible '''H'''yper'''T'''ext '''M'''arkup '''L'''anguage}},{{lang|en|XHTML}}),是一种[[标记语言]],表现方式与[[超文本标记语言]]([[HTML]])类似,不过语法上更加严格。从继承关系上讲,HTML是一种基于[[标准通用标记语言]]([[SGML]])的应用,是一非常灵活的置标语言,而'''XHTML'''则基于[[可扩展标记语言]]([[XML]]),XML是[[SGML]]的一个子集。XHTML 1.0在2000年1月26日成为[[W3C]]的推荐标准。
'''可扩展超文本标记语言'''({{lang-en|e'''X'''tensible '''H'''yper'''T'''ext '''M'''arkup '''L'''anguage}},{{lang|en|XHTML}}),是一种[[标记语言]],表现方式与[[超文本标记语言]]([[HTML]])类似,不过语法上更加严格。从继承关系上讲,HTML是一种基于[[标准通用标记语言]]([[SGML]])的应用,是一非常灵活的置標語言,而'''XHTML'''则基于[[可扩展标记语言]]([[XML]]),XML是[[SGML]]的一个子集。XHTML 1.0在2000年1月26日成为[[W3C]]的推荐标准。


XHTML1.1XHTML最準,2.0止草案段。XHTML5属于HTML5準的一部份,且名已改为“以XML序列化的HTML5”,而非展的HTML”。在今日(2017年),XHTML5比起HTML5仍远远并非主流。
XHTML1.1XHTML最準,2.0止草案段。XHTML5屬於HTML5準的一部份,且名已改為「以XML序列化的HTML5」,而非展的HTML」。在今日(2017年),XHTML5比起HTML5仍遠遠並非主流。


== 概述 ==
== 概述 ==


'''XHTML'''是“3种HTML 4文件根XML 1.0準重组”而成的<ref name="W3cWhatIsXhtml">http://www.w3.org/TR/xhtml1/#xhtml 'What is XHTML?' section in ''XHTML™ 1.0 The Extensible HyperText Markup Language (Second Edition)'' A Reformulation of HTML 4 in XML 1.0 ''W3C Recommendation 26 January 2000, revised 1 August 2002''</ref>。而[[W3C]]亦继续使用[[HTML]] 4.01和积极地研究[[HTML5]]及XHTML的计划2002年8月表的XHTML 1.0的建中,[[W3C]]指出'''XHTML'''家族将会是[[Internet]]的新段。而转换使用'''XHTML'''可以令开发[[XML]]和其好可以保以'''XHTML'''开发的相容性。
'''XHTML'''是「3種HTML 4文件根XML 1.0準重組」而成的<ref name="W3cWhatIsXhtml">http://www.w3.org/TR/xhtml1/#xhtml 'What is XHTML?' section in ''XHTML™ 1.0 The Extensible HyperText Markup Language (Second Edition)'' A Reformulation of HTML 4 in XML 1.0 ''W3C Recommendation 26 January 2000, revised 1 August 2002''</ref>。而[[W3C]]亦繼續使用[[HTML]] 4.01和積極地研究[[HTML5]]及XHTML的計劃2002年8月表的XHTML 1.0的建中,[[W3C]]指出'''XHTML'''家族將會是[[Internet]]的新段。而轉換使用'''XHTML'''可以令開發[[XML]]和其好可以保以'''XHTML'''開發的相容性。


HTML语法要求比较松散,这样对网页编写者来说,比较方便,但对于机器来说,语言的[[语法]]越松散,处理起来就越困难,对于传统的电脑来说,还有能力兼容松散语法,但对于许多其他设备,比如手机,难度就比较大。因此产生了由[[文档类型定义|DTD]]定义规则,语法要求更加严格的XHTML。
HTML语法要求比较松散,这样对网页编写者来说,比较方便,但对于机器来说,语言的[[语法]]越松散,处理起来就越困难,对于传统的電腦来说,还有能力兼容松散语法,但对于许多其他设备,比如手机,难度就比较大。因此产生了由[[文档类型定义|DTD]]定义规则,语法要求更加严格的XHTML。


大部分常见的浏览器都可以正确地解析XHTML,即使老一点的浏览器,XHTML作为HTML的一个子集,许多也可以解析。也就是说,几乎所有的网页浏览器在正确解析HTML的同时,可兼容XHTML。当然,从[[HTML]]完全转移到XHTML,还需要一些过程。
大部分常见的浏览器都可以正确地解析XHTML,即使老一点的浏览器,XHTML作为HTML的一个子集,许多也可以解析。也就是说,几乎所有的网页浏览器在正确解析HTML的同时,可兼容XHTML。当然,从[[HTML]]完全转移到XHTML,还需要一些过程。
第36行: 第36行:
跟[[CSS]](Cascading Style Sheets,层叠式样式表)结合后,XHTML能发挥真正的威力;这使实现样式跟内容的分离的同时,又能有机地组合网页代码,在另外的单独文件中,还可以混合各种XML应用,比如[[MathML]]、[[SVG]]。
跟[[CSS]](Cascading Style Sheets,层叠式样式表)结合后,XHTML能发挥真正的威力;这使实现样式跟内容的分离的同时,又能有机地组合网页代码,在另外的单独文件中,还可以混合各种XML应用,比如[[MathML]]、[[SVG]]。


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


== 版本 ==
== 版本 ==
至现时为止,XHTML共有以下几个版本:
至现时为止,XHTML共有以下几个版本:
* '''XHTML 1.0 Strict(严格版)'''是参照“HTML 4.01 Strict”改编,但不包括被用的元素。其[[文件类型描述]]为:
* '''XHTML 1.0 Strict(严格版)'''是参照“HTML 4.01 Strict”改编,但不包括被用的元素。其[[文件类型描述]]为:
<syntaxhighlight lang="xml"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"></syntaxhighlight>
<syntaxhighlight lang="xml"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"></syntaxhighlight>
* '''XHTML 1.0 Transitional(过渡版)'''是参照“HTML 4.01 Transitional”改编,包括已Strict版本被用的呈性元素(例如<code>&lt;center&gt;</code>, <code>&lt;font&gt;</code>等)。其[[文件类型描述]]为:
* '''XHTML 1.0 Transitional(过渡版)'''是参照“HTML 4.01 Transitional”改编,包括已Strict版本被用的呈性元素(例如<code>&lt;center&gt;</code>, <code>&lt;font&gt;</code>等)。其[[文件类型描述]]为:
<syntaxhighlight lang="xml"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></syntaxhighlight>
<syntaxhighlight lang="xml"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></syntaxhighlight>
* '''XHTML 1.0 Frameset(框架版)'''是参照“HTML 4.01 Frameset”改编,许于网頁中定[[框架元素]]。其[[文件类型描述]]为:
* '''XHTML 1.0 Frameset(框架版)'''是参照“HTML 4.01 Frameset”改编,許於網頁中定[[框架元素]]。其[[文件类型描述]]为:
<syntaxhighlight lang="xml"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"></syntaxhighlight>
<syntaxhighlight lang="xml"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"></syntaxhighlight>
* '''XHTML 1.1'''。其[[文件类型描述]]为:
* '''XHTML 1.1'''。其[[文件类型描述]]为:
第51行: 第51行:
<syntaxhighlight lang="xml"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd"></syntaxhighlight>
<syntaxhighlight lang="xml"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd"></syntaxhighlight>


另外,在[[Microsoft]] [[Internet Explorer]] 5.0所新增的<code>&lt;ruby&gt;</code>小字注解标签,在XHTML 1.1得到支援(参看[[旁注标记]])。<br />
另外,在[[Microsoft]] [[Internet Explorer]] 5.0所新增的<code>&lt;ruby&gt;</code>小字注解标签,在XHTML 1.1得到支援(参看[[旁註標記]])。<br />
而第二版的XHTML 1.02002年8月成[[W3C]]推薦的文件型。<ref>{{Cite web |url=http://www.w3.org/TR/2002/REC-xhtml1-20020801/ |title=存档副本 |accessdate=2008-09-30 |||}}</ref>
而第二版的XHTML 1.02002年8月成[[W3C]]推薦的文件型。<ref>{{Cite web |url=http://www.w3.org/TR/2002/REC-xhtml1-20020801/ |title=存档副本 |accessdate=2008-09-30 |||}}</ref>


2.0止草案。
2.0止草案。


[[XHTML5]]不需要DTD。
[[XHTML5]]不需要DTD。
第60行: 第60行:
== 有效的XHTML文件 ==
== 有效的XHTML文件 ==
{{HTML}}
{{HTML}}
符合(附合)XHTML準的文件即可称为''有效''。此可以保XHTML文件代碼的协调,亦能令文件的更容易被理,而不需保各种浏览编译的一致性。而[[W3C証服]]可以証文件是否有效。而实际上,很多[[开发工具]](例如[[Dreamweaver]])都支援以[[W3C]]証文件。
符合(附合)XHTML準的文件即可稱為''有效''。此可以保XHTML文件代碼的協調,亦能令文件的更容易被理,而不需保各種瀏覽編譯的一致性。而[[W3C証服]]可以証文件是否有效。而實際上,很多[[開發工具]](例如[[Dreamweaver]])都支援以[[W3C]]証文件。


== 语法 ==
== 语法 ==
第68行: 第68行:
(翻译自 [http://www.w3.org/TR/xhtml1/#diffs W3C XHTML说明] )这部分涉及内容广泛。
(翻译自 [http://www.w3.org/TR/xhtml1/#diffs W3C XHTML说明] )这部分涉及内容广泛。


XHTML是[[XML]]的一种应用。基于这一事实,那些在以[[SGML]]为基础的[[HTML 4]]中,不完全合法的用法,应被改
XHTML是[[XML]]的一种应用。基于这一事实,那些在以[[SGML]]为基础的[[HTML 4]]中,不完全合法的用法,应被改


=== 文档应该是结构良好的 ===
=== 文档应该是結構良好的 ===
[[良好结构]](Well-formed)<ref>{{Cite web |url=http://www.w3.org/TR/xhtml1/#wellformed |title=存档副本 |accessdate=2005-04-17 |||}}</ref>是由[[XML]]<ref>{{Cite web |url=http://www.w3.org/TR/xhtml1/#ref-xml |title=存档副本 |accessdate=2005-04-17 |||}}</ref>引入的一个新概念。也就是说所有的元素都必须有结束标签或者以特殊的方式书写(如下所述),而且所有的标签必须合理地嵌套。
[[良好結構]](Well-formed)<ref>{{Cite web |url=http://www.w3.org/TR/xhtml1/#wellformed |title=存档副本 |accessdate=2005-04-17 |||}}</ref>是由[[XML]]<ref>{{Cite web |url=http://www.w3.org/TR/xhtml1/#ref-xml |title=存档副本 |accessdate=2005-04-17 |||}}</ref>引入的一个新概念。也就是说所有的元素都必须有结束标签或者以特殊的方式书写(如下所述),而且所有的标签必须合理地嵌套。


儘管如此,交叉使用在SGML中仍然是合法的,而且在有的浏览器中也能够被广泛接受。
儘管如此,交叉使用在SGML中仍然是合法的,而且在有的瀏覽器中也能够被广泛接受。
-{zh-hans:
-{zh-hans:
:正确:元素嵌套
:正确:元素嵌套
第79行: 第79行:
:错误:元素交叉
:错误:元素交叉
::<code>&lt;em&gt;&lt;p&gt;这是一个要强调的段落。&lt;/em&gt;&lt;/p&gt;</code>; zh-hant:
::<code>&lt;em&gt;&lt;p&gt;这是一个要强调的段落。&lt;/em&gt;&lt;/p&gt;</code>; zh-hant:
:正:元素嵌套
:正:元素嵌套
::<code>&lt;p&gt;&lt;em&gt;是一强调的段落。&lt;/em&gt;&lt;/p&gt;</code>
::<code>&lt;p&gt;&lt;em&gt;是一強調的段落。&lt;/em&gt;&lt;/p&gt;</code>
:錯:元素交叉
:錯:元素交叉
::<code>&lt;em&gt;&lt;p&gt;是一强调的段落。&lt;/em&gt;&lt;/p&gt;</code>;}-
::<code>&lt;em&gt;&lt;p&gt;是一強調的段落。&lt;/em&gt;&lt;/p&gt;</code>;}-


=== 元素名性必 ===
=== 元素名性必 ===
XHTML文件要求所有的HTML元素名性名都要小。因XML本身大小不同,因此必须区开来。比如,<code>&lt;li&gt;</code>和<code>&lt;LI&gt;</code>是完全不同的。
XHTML文件要求所有的HTML元素名性名都要小。因XML本身大小不同,因此必須區開來。比如,<code>&lt;li&gt;</code>和<code>&lt;LI&gt;</code>是完全不同的。


=== 要有结束标签 ===
=== 要有结束标签 ===
基于SGML的HTML 4里面,允许特定的标签省略结束标签;这些元素暗含有结束标记。XHTML不允许省略结束标记。所有元素(包括在DTD中声明为空的标签),都必须有结束标签。在[[文件型描述|DTD]]中声明为空的元素可以用结束标签或者使用空元素速记法(参见[http://www.w3.org/TR/xhtml1/#h-4.6 空元素] )。
基于SGML的HTML 4里面,允许特定的标签省略结束标签;这些元素暗含有结束标记。XHTML不允许省略结束标记。所有元素(包括在DTD中声明为空的标签),都必须有结束标签。在[[文件型描述|DTD]]中声明为空的元素可以用结束标签或者使用空元素速记法(参见[http://www.w3.org/TR/xhtml1/#h-4.6 空元素] )。
-{zh-hans:
-{zh-hans:
:正确的:结束的元素
:正确的:结束的元素
::<code>&lt;p&gt;是一段落。&lt;/p&gt;&lt;p&gt;是另一段落。&lt;/p&gt;</code>
::<code>&lt;p&gt;是一段落。&lt;/p&gt;&lt;p&gt;是另一段落。&lt;/p&gt;</code>
:錯的:没有结束的元素
:錯的:没有结束的元素
::<code>&lt;p&gt;是一段落。&lt;p&gt;是另一段落。</code>;zh-hant:
::<code>&lt;p&gt;是一段落。&lt;p&gt;是另一段落。</code>;zh-hant:
:正的:结束的元素
:正的:结束的元素
::<code>&lt;p&gt;是一段落。&lt;/p&gt;&lt;p&gt;是另一段落。&lt;/p&gt;</code>
::<code>&lt;p&gt;是一段落。&lt;/p&gt;&lt;p&gt;是另一段落。&lt;/p&gt;</code>
:錯的:没有结束的元素
:錯的:没有结束的元素
::<code>&lt;p&gt;是一段落。&lt;p&gt;是另一段落。</code>;}-
::<code>&lt;p&gt;是一段落。&lt;p&gt;是另一段落。</code>;}-


=== 属性值必须总是使用引号包裹 ===
=== 属性值必须总是使用引号包裹 ===
第138行: 第138行:
<script type="text/javascript">
<script type="text/javascript">
<![CDATA[
<![CDATA[
...沒有转义处理的容...
...沒有轉義處理的容...
]]>
]]>
</script>
</script>
第167行: 第167行:
== XHTML5 ==
== XHTML5 ==
{{see also|XHTML5}}
{{see also|XHTML5}}
XHTML5非可展HTML的后继语言,而是XML序列化的HTML5的呼,延了一部分原本XHTML的精神而加入HTML5,成HTML5格的一部分。
XHTML5非可展HTML的後繼語言,而是XML序列化的HTML5的呼,延了一部分原本XHTML的精神而加入HTML5,成HTML5格的一部分。


== 考文 ==
== 考文 ==
{{Reflist}}
{{Reflist}}


第175行: 第175行:
* [http://www.w3.org/TR/xhtml1/ XHTML 1.0可扩展超文本标记语言(第二版)]
* [http://www.w3.org/TR/xhtml1/ XHTML 1.0可扩展超文本标记语言(第二版)]
* [http://www.w3.org/TR/xhtml-basic/ XHTML基础]
* [http://www.w3.org/TR/xhtml-basic/ XHTML基础]
* [http://validator.w3.org/ W3C証服]
* [http://validator.w3.org/ W3C証服]
* [http://www.w3.org/TR/xhtml11/ XHTML 1.1 - 基于模块的XHTML]
* [http://www.w3.org/TR/xhtml11/ XHTML 1.1 - 基于模块的XHTML]
* [http://www.w3.org/TR/xhtml2/ XHTML 2.0(草案)]
* [http://www.w3.org/TR/xhtml2/ XHTML 2.0(草案)]
第188行: 第188行:
* [[Unicode]]
* [[Unicode]]
* [[Acid2]]
* [[Acid2]]
* [[W3C証服]]{{-}}
* [[W3C証服]]{{-}}


{{W3C规范和标准}}
{{W3C规范和标准}}