本文参考:W3school
XHTML 简介
- XHTML 是更严谨更纯净的 HTML 版本
- XHTML 是可扩展超文本标签语言(EXtensible HyperText Markup Language)
- XHTML 是作为一种 XML 应用被重新定义的 HTML
- XHTML 是一个 W3C 标准
- XHTML 是 HTML 与 XML(扩展标记语言)的结合物
XHTML 引入目的
- 万维网上的许多页面都包含着糟糕的 HTML 代码,即便没有遵循HTML 规则也能使用
- XML 用来描述数据,而 HTML 则用来显示数据
- XHTML将HTML 和 XML 各自的长处加以结合得以编写出拥有良好结构的文档,这些文档可以很好地工作于所有的浏览器,并且可以向后兼容。
XHTML和HTML 间的差异
主要不同
-
XHTML 元素必须被正确地嵌套
错误嵌套
<b><i>text</b></i>
正确嵌套
<b><i>text</i></b>
-
XHTML 元素必须被关闭
非空标签必须使用结束标签
<p>text</p>
空标签必须关闭
<p>text</p><br /> <p>text</p><hr />
-
标签名必须用小写字母
XHTML 规范定义:标签名和属性对大小写敏感,标签一律小写
<p>text</p><br />
-
XHTML 文档必须拥有根元素
所有的 XHTML 元素必须被嵌套于 根元素中
<html> <head> ... </head> <body> ... </body> </html>
XHTML 语法
-
属性名称必须小写
<table width="100%">
-
属性值必须加引号
<table width="100%">
-
属性不能简写
<input checked="checked" /> <input readonly="readonly" /> <input disabled="disabled" /> <option selected="selected" /> <frame noresize="noresize" />
注意 “/” 符号前需添加一个额外的空格使XHTML与浏览器相兼容
HTML与XHTML写法对照表
HTML XHTML compact compact=“compact” checked checked=“checked” declare declare=“declare” readonly readonly=“readonly” disabled disabled=“disabled” selected selected=“selected” defer defer=“defer” ismap ismap=“ismap” nohref nohref=“nohref” noshade noshade=“noshade” nowrap nowrap=“nowrap” multiple multiple=“multiple” noresize noresize=“noresize” -
用 Id 属性代替 name 属性
对于下列元素a, applet, frame, iframe, img, 和map应当用name属性代替id属性
<!--HTML--> <img src="picture.gif" name="picture1" /> <!--XHTML--> <img src="picture.gif" id="picture1" />
-
XHTML DTD 定义了强制使用的 HTML 元素
XHTML文档需进行文件类型声明(DOCTYPE declaration),XHTML文档中必须存在html、head、body元素,title必须位于head中
<!DOCTYPE Doctype goes here> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Title goes here</title> </head> <body> </body> </html>
文件类型声明并非 XHTML 文档自身的组成部分,它并不是 XHTML 元素,也没有关闭标签。
XHTML DTD
XHTML 定义了三种文档类型声明:
-
STRICT(严格类型)
适用范围:需要干净的标记,避免表现上的混乱,与层叠样式表配合使用
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-
TRANSITIONAL(过渡类型)
适用范围:当需要利用 HTML 在表现上的特性时,并且当需要为那些不支持层叠样式表的浏览器编写 XHTML 时
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
FRAMESET(框架类型)
适用范围:需要使用HTML框架将浏览器窗口分割为两部分或更多框架时
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
XHTML 验证
XHTML 文档是根据文档类型声明(DTD)进行验证的。只有将正确的 DTD 添加到文件的首行,XHTML 文件才会被正确地验证
- 严格 DTD 包含没有被反对使用的或不出现在框架结构中的元素和属性
- 过渡 DTD 包含严格 DTD 中的一切,外加那些不赞成使用的元素和属性
- 框架 DTD 包含过渡 DTD 中的一切,外加框架
XHTML 模块
通过使用模块化的 XHTML,产品和软件设计者可以:
- 选择被某种设备所支持的元素。
- 在不打破 XHTML 标准的情况下,使用 XML 对 XHTML 进行扩展。
- 针对小型设备,对 XHTML 进行简化。
- 通过添加新的 XML 功能(比如 MathML, SVG, 语音和多媒体),针对复杂的应用对 XHTML 进行扩展。
- 定义 XHTML 框架,比如 XHTML BASIC (针对移动设备的 XHTML 子集)。