XHTML
XHTML 是更严格更纯净的 HTML 代码。
XHTML 是 HTML 与 XML(扩展标记语言)的结合物。
XHTML 包含了所有与 XML 语法结合的 HTML 4.01 元素。
### 重要的兼容性提示: 你应该在 "/" 符号前添加一个额外的空格,以使你的 XHTML 与当今的浏览器相兼容。
为什么要用XHTML:
XHTML 可以被所有的支持 XML 的设备读取,同时在其余的浏览器升级至支持 XML 之前,XHTML 使我们有能力编写出拥有良好结构的文档,这些文档可以很好地工作于所有的浏览器,并且可以向后兼容。
XHTML 与 HTML 4.01 标准没有太多的不同。
最主要的不同:
-
- XHTML 元素必须被正确地嵌套。 <b><i><p></p></i></b>(一一对应) - XHTML 元素必须被关闭,空标签也必须被关闭. <a></a> <b></b> (有一个开始有一个结束) <br /> <hr />(单独的一个空标签也需要结束) - 标签名必须用小写字母。 <body> <p>This is a paragraph</p> </body> - XHTML 文档必须拥有一个根元素。 <html> <head> ... </head> <body> ... </body> </html>
XHTML 语法规则:
-
- 属性名称必须小写 <table width="100%"> - 属性值必须加引号 <table width="100%"> - 属性不能简写 <input checked="checked" /> - 用 Id 属性代替 name 属性 <img src="picture.gif" id="picture1" /> - XHTML DTD 定义了强制使用的 HTML 元素
语言属性(lang)
lang 属性应用于几乎所有的 XHTML 元素。它定义元素内部的内容的所用语言的类型。
如果在某元素中使用 lang 属性,就必须添加额外的 xml:lang,像这样:
<div lang="no" xml:lang="no">Heia Norge!</div>
-
强制使用的 XHTML 元素
所有 XHTML 文档必须进行文件类型声明(DOCTYPE declaration)。在 XHTML 文档中必 须存在html、head、body元素,而 title 元素必须位于在 head 元素中。
下面是一个最小化的 XHTML 文件模板:
<!DOCTYPE Doctype goes here> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Title goes here</title> </head> <body> </body> </html>
<!DOCTYPE> 是强制使用的。
-
一个 XHTML 文档有三个主要的部分: - DOCTYPE - Head - Body
3种文档类型声明
-
- DTD 规定了使用通用标记语言(SGML)的网页的语法。 - 诸如 HTML 这样的通用标记语言应该使用 DTD 来规定应用于某种特定文档中的标签的规则,这些规则包括一系列的元素和实体的声明。 - 在通用标记语言(SGML)的文档类型声明或 DTD 中,XHTML 被详细地进行了描述。 - XHTML DTD 使用精确的可被计算机读取的语言来描述合法的 XHTML 标记的语法和句法。
存在三种XHTML文档类型:
-
- STRICT(严格类型) - TRANSITIONAL(过渡类型) - FRAMESET(框架类型)
XHTML 1.0 Strict
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
在此情况下使用:需要干净的标记,避免表现上的混乱。请与层叠样式表配合使用。
XHTML 1.0 Transitional
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
在此情况下使用:当需要利用 HTML 在表现上的特性时,并且当需要为那些不支持层叠样式表的浏览器编写 XHTML 时。
XHTML 1.0 Frameset
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
在此的情况下使用:需要使用HTML框架将浏览器窗口分割为两部分或更多框架时。