关于XHTML

528 阅读6分钟

XHTML是更严格更纯净的HTML代码。

XHTML是什么

  1. XHTML指可拓展超文本标签语言;
  2. 目标是取代HTML;
  3. XHTML与HTML4.01几乎相同;
  4. 作为一种XML应用被重新定义的HTML;
  5. 是一个W3C标准。

为什么要使用XHTML

XML是一种标记化的语言,其中所有的东西都要被正确的标记,以产生形式良好的文档。

XML用来描述数据,HTML用来显示数据。

通过把HTML和XML各自的长处加以结合,我们得到了现在和未来都能派上用场的标记语言——XHTML。

XHTML可以被所有的支持XML的设备读取,同时在其余的浏览器升级至支持XML之前,XHTML使我们有能力编写出拥有良好结构的文档,这些文档可以很好地工作于所有的浏览器,并且可以向后兼容。

XHTML与HTML的差异

  1. XHTML中,元素必须被正确地嵌套;
  2. XHTML元素必须被关闭(非空标签必须使用结束标签);
  3. 空标签也必须被关闭(使用结束标签或其开始标签使用/>结尾);
  4. XHTML元素必须小写(标签名和属性对大小写敏感);
  5. XHTML文档必须有一个根元素。

XHTML语法

  1. 属性名称必须小写;
  2. 属性值必须加引号;
  3. 属性不能简写;
  4. 用id属性代替name属性;
  5. XHTML DTD定义了强制使用的HTML元素。(必须进行文件类声明)

如何将网站升级至XHTML

  1. 添加文件声明(不同的文件声明,浏览器对文档的处理方式不同)
  2. 小写的标签和属性名
  3. 给所有属性加上引号
  4. 验证站点

XHTML验证

通过DTD验证XHTML

XHTML文档是根据文档类型声明(DTD)进行验证的。只有将正确的DTD添加到文件的首行,XHTML文件才会被正确地验证。

XHTML模块

XHTML模块化模型定义了XHTML的模块。

XHTML模块化的原因

通过将XHTML分为若干模块,W3C已经创造出数套小巧且定义良好的XHTML元素,这些元素既可被独立应用于简易设备,又可以与其他XML标准并入大型且更复杂的应用程序。

XHTML模块

模块名称描述
Applet Module (Applet模块)定义已被废弃的applet元素。
Base Module (基础模块)定义基本元素。
Basic Forms Module (基础表单模块)定义基本的表单元素 (forms)。
Basic Tables Module (基础表格模块)定义基本的表格元素 (table)。
Bi-directional Text Module (双向文本模块)定义bdo元素。
Client Image Map Module(客户端图像映射模块)定义浏览器端图像映射元素(image map elements)。
Edit Module (编辑模块)定义编辑元素删除和插入。
Forms Module (表单模块)定义所有在表单中使用的元素。
Frames Module (框架模块)定义frameset元素。
Hypertext Module (超文本模块)定义a元素。
Iframe Module (内联框架模块)定义iframe元素。
Image Module (图像模块)定义图像元素 (img)。
Intrinsic Events Module ()定义事件属性 (event),比如onblur和onchange。
Legacy Module (遗留模块)定义被废弃的元素和属性。
Link Module (链接模块)定义链接 (link)元素。
List Module (列表模块)定义列表元素ol, li, ul, dd, dt,和dl。
Metainformation Module (元信息模块)定义meta元素。
Name Identification Module (名称识别模块)定义已被废弃的name属性。
Object Module (对象模块)定义对象元素 (object)和param元素。
Presentation Module (表现模块)定义表现元素比如b和i。
Scripting Module (脚本模块)定义脚本 (script)和无脚本 (noscript)元素。
Server Image Map Module(服务器端图像映射模块)定义服务器端图像映射(server side image map)元素
Structure Module (结构模块)定义以下元素:html, head, title and body。
Style Attribute Module (样式属性模块)定义样式属性。
Style Sheet Module (样式表模块)定义样式元素。
Tables Module (表格模块)定义用于表格中的元素。
Target Module (Target模块)定义target属性。
Text Module (文本模块)定义文本容器元素 (text container),比如p和h1。

XHTML标准属性

这里列出通用于每个标签的核心属性和语言属性(有个别例外)。

核心属性

以下标签不提供下面的属性:base, head, html, meta, param, script, style, 以及 title 元素。

属性描述
classclass_rule 或 style_rule元素的类(class)
idid_name元素的某个特定id
style样式定义内联样式定义
title提示文本显示于提示工具中的文本

语言属性

以下标签不提供下面的属性:base, br, frame, frameset, hr, iframe, param, 以及 script 元素。

属性描述
dirltr | rtl设置文本的方向
lang语言代码设置语言代码

键盘属性

属性描述
accesskey字符设置访问某元素的键盘快捷键
tabindex设置某元素的Tab次序

XHTML事件属性

HTML4.0的新特性之一是使HTML事件触发浏览器中的行为。这里了解一下可被插入HTML标签以定义事件行为的一系列属性。

想要使用这些事件进行编程,先要学习JavaScript。

窗口事件

仅在 body 和 frameset 元素中有效。

属性描述
onload脚本当文档被载入时执行脚本
onunload脚本当文档被卸下时执行脚本

表单元素

仅在表单元素中有效。

属性描述
onchange脚本当元素改变时执行脚本
onsubmit脚本当表单被提交时执行脚本
onreset脚本当表单被重置时执行脚本
onselect脚本当元素被选取时执行脚本
onblur脚本当元素失去焦点时执行脚本
onfocus脚本当元素获得焦点时执行脚本

键盘事件

在下列元素中无效:base, bdo, br, frame, frameset, head, html, iframe, meta, param, script, style, 以及 title 元素。

属性描述
onkeydown脚本当键盘被按下时执行脚本
onkeypress脚本当键盘被按下后又松开时执行脚本
onkeyup脚本当键盘被松开时执行脚本

鼠标事件

在下列元素中无效:base, bdo, br, frame, frameset, head, html, iframe, meta, param, script, style, title 元素。

属性描述
onclick脚本当鼠标被单击时执行脚本
ondblclick脚本当鼠标被双击时执行脚本
onmousedown脚本当鼠标按钮被按下时执行脚本
onmousemove脚本当鼠标指针移动时执行脚本
onmouseout脚本当鼠标指针移出某元素时执行脚本
onmouseover脚本当鼠标指针悬停于某元素之上时执行脚本
onmouseup脚本当鼠标按钮被松开时执行脚本