|
简明 XHTML 1.0 参考手册
作者:金步国
版权声明
本文作者是一位自由软件爱好者,所以本文虽然不是软件,但是本着 GPL的精神发布。任何人都可以自由使用、转载、复制和再分发,但必须保留作者署名,亦不得对声明中的任何条款作任何形式的修改,也不得附加任何其它条件。您可以自由链接、下载、传播此文档,但前提是必须保证全文完整转载,包括完整的版权信息和作译者声明。
其他作品
本文作者十分愿意与他人共享劳动成果,如果你对我的其他翻译作品或者技术文章有兴趣,可以在如下位置查看现有作品的列表:
- 电信用户请访问: 金步国作品列表
- 网通用户请访问: 金步国作品列表
- 铁通用户请访问: 金步国作品列表
- 教育网用户请访问:金步国作品列表
BUG报告,切磋与探讨
由于作者水平有限,因此不能保证作品内容准确无误,请在阅读中自行鉴别。如果你发现了作品中的错误,请您来信指出,哪怕是错别字也好,任何提高作品质量的建议我都将虚心接纳。如果你愿意就作品中的相关内容与我进行进一步切磋与探讨,也欢迎你与我联系。联系方式:Email:csfrank@citiz.net ; QQ: 70171448 ; MSN: csfrank122@hotmail.com
过渡型XHTML文档头与文档结构
<!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta http-equiv="Content-Language" content="zh-CN" />
<style type="text/css" media="all">
</style>
<!-- 其他文档头元素 -->
<title>文档标题</title>
</head>
<body>
</body>
</html>
通用字符实体
实体含义""&&<<>>属性值的数据类型
[注意]所有属性值编码后的长度都不能超过1024字节。
[释疑] 一段被 <![CDATA[ 和 ]]>括起来的CDATA节表示一段不被解析的字符数据,其中可以直接使用 " & < > 字符。
CDATA节只能出现在元素的内容中,它与属性声明中的CDATA数据类型并无任何关系。
属性值的基本类型数据类型解释ID整个文档范围内的唯一标识符IDREF在文档其他位置已定义的ID类型的值IDREFS空格分割的已定义的ID类型的值列表NMTOKEN面向处理程序的XML名称(记号)CDATA字符数据,必须对 & < 和 " 使用实体,多个空白符等价于单个空格。NMTOKEN的派生类型数据类型解释语言代码比如:"zh" "zh-CN" "zh-TW" "en-US"框架名预定义名称:"_blank"(新窗口) "_self"(自身) "_parent"(父窗口) "_top"(顶层窗口) ;自定义的名称不能以下划线开头。CDATA的派生类型数据类型解释MIME类型比如:"text/css" "image/gif" "application/rss+xml"MIME列表逗号分隔的MIME类型列表。比如:"text/*" "image/*,*/*"设备列表逗号分隔的设备类型列表。比如:"all"(所有) "screen"(屏幕) "print"(打印机)字符编码比如:"gb2312" "utf-8"关系列表空格分隔的连接关系列表。比如:"Shortcut Icon"(图标,仅用于link) "Next"(下一个) "Prev"(上一个)"Parent"(上一级) "Start"(起点) "Contents Index"(目录 索引) "Alternate"(可替代文档)"Chapter"(章) "Section"(节) "Subsection"(子节) "Copyright"(版权)"Glossary"(词汇表) "Help"(帮助) "Appendix"(附录)URL比如:"/new%20pricing.php?id=678" "mailto:rcpt@host?subject=sub&cc=copy@net" "javascript:fun('cc');"URL列表空格分割的URL列表。比如:"../index.html /test.html#frag #price"js脚本一段JavaScript脚本。比如:"window.alert("XX公司主页");"简介对元素内容的摘要介绍。比如:"XX公司简介"唯一字母整个文档范围内的唯一小写字母。比如:"a"正整数一个大于零的正整数。比如:"1"像素以像素为单位的长度。比如:"2" "523" "0"长度"nn"表示像素长度,"nn%"表示百分比长度(相对于包含块的高度或宽度)。比如:"3" "30%"混合长度"nn"表示像素长度,"nn%"表示百分比长度,"n*"表示剩余空间内的相对长度。比如:"3*" "*" "5*"坐标序列逗号分隔的坐标序列。规则:矩形[x1,y1,x2,y2],圆[x,y,r],多边形[x1,y1,x2,y3,x3,y3,...,xn,yn]通用属性组
方框含义模式解释[]无默认值的可选属性["???"]有默认值的可选属性
无默认值的必需属性[定值"???"]值固定的必需属性%Core;(核心)属性名数据类型解释idID[]为元素定义一个唯一引用名,以供 超连接、样式表、小程序、其他元素 等引用。classCDATA[]指定元素内容的样式类。其值为用空格分隔的样式类名称列表。title简介[]为元素指定一个标题。鼠标停留时会显示其内容,常作为热点帮助。%Lang;(语言)属性名数据类型解释xml:lang语言代码[]指定元素内容的语言。%Event;(事件)属性名数据类型解释onclickjs脚本[]单击事件ondblclickjs脚本[]双击事件onmousedownjs脚本[]按下左键事件onmouseupjs脚本[]释放左键事件onmouseoverjs脚本[]进入元素区域事件onmousemovejs脚本[]在元素内移动事件onmouseoutjs脚本[]离开元素区域事件%Focus;(焦点)属性名数据类型解释accesskey唯一字母[]定义选中该元素的快捷键(Alt+字母)tabindex正整数[]使用Tab键切换焦点时的顺序onfocusjs脚本[]获得焦点事件onblurjs脚本[]失去焦点事件 %Attrs; = %Core; + %Lang; + %Event;
通用元素组
%inline;"a | br|span|object|img|map|iframe | em|strong|dfn|samp|kbd|code|var|cite|q|abbr|acronym | input|select|textarea|label|button"%INLINE;(#PCDATA | %inline; | script)*%block;"div | p | h1|h2|h3|h4|h5|h6 | ul|ol|dl | pre|blockquote|address | fieldset | table"%BLOCK;(%block; | form | script)*%Flow;(%INLINE; | %BLOCK;) [说明]"#PCDATA" 表示文本数据,必须对其中的 & 和 < 字符使用实体。
文档结构与头部元素
界定文档 | %Lang; | <html> head, body </html> | xmlns | URL | [定值"http://www.w3.org/1999/xhtml"]本篇文档的XML命名空间 |
文档头 | %Lang; | <head> (meta|link|style|script|object)*, base?, title </head> |
文档标题 | %Lang; | <title> #PCDATA </title> |
文档基准 | | <base ... /> | href | URL | []基准URL。比如:"/info/" | target | 框架名 | ["_self"]默认的目标框架或窗口名称 |
元信息 | %Lang; | <meta ... /> | http-equiv | CDATA | []等价HTTP头字段名称 | name | CDATA | []元信息的名称 | content | CDATA |
名称对应的值 | 补充说明 | http-equiv与name必需二选一。
http-equiv常用:"Content-Type"(MIME类型,字符编码) "Content-Language"(语言)"Refresh"(自动刷新) "Expires"(失效时间) "Cache-Control"(缓存控制)"MSThemeCompatible"(XP主题) "imagetoolbar"(图像工具栏) "Page-Enter"(载入特效)"Page-Exit"(退出特效)
name常用:"keywords"(关键字列表) "description"(网页描述)"author"(作者) "Copyright"(版权信息) "revisit"(重访) "robots"(机器人指令)"abstract"(摘要) "classification"(分类) "page-topic"(网页主题) "placename"(地名) |
文档关系 | %Attrs; | <link ... /> | href | URL |
目标文档 | rel | 关系列表 |
从源文档到目标文档的关系 | rev | 关系列表 | []从目标文档到源文档的关系 | hreflang | 语言代码 | []目标文档的语言 | charset | 字符编码 | []目标文档的字符编码 | type | MIME类型 | []目标文档的MIME类型 | media | 设备列表 | []目标文档所属设备类型 | 补充说明 | rel与rev属性的通常用法:
a)在文档集中导航(start, contents, prev, next, index, end, help)
c)连接到该文档的可替代版本(rel="alternate"),如:另一语言版本、RSS版本、PDF版本、打印版本 |
样式表 | %Lang; | <style> #PCDATA </style> | type | MIME类型 | [定值"text/css"] | media | 设备列表 | ["screen"]适用的媒体类型 | title | 简介 | []样式说明 |
JS脚本 | | <script> #PCDATA </script> | type | MIME类型 | [定值"text/javascript"] | src | URL | []引用的外部javascript代码(*.js)位置 | charset | 字符编码 | []与src属性一起使用,指明外部js文件的字符集 | defer | (defer) | []指明js脚本并不修改XHTML代码,从而可推迟脚本的执行 |
文档体 | %Attrs; | <body> %BLOCK; </body> | onload | js脚本 | []文档被完全载入完毕时的事件 | onunload | js脚本 | []文档被卸载前的事件 | 结构元素
标题 | %Attrs; | <h1|h2|h3|h4|h5|h6> %INLINE; </h1|h2|h3|h4|h5|h6> |
水平分割线 | %Attrs; | <hr ... /> | noshade | (noshade) | []不显示阴影 |
通用结构容器 | %Attrs; | <div> %Flow; </div> |
段落 | %Attrs; | <p> %INLINE; </p> | 锚
锚 | %Attrs; %Focus; | <a> (%INLINE; - a) </a> | name | NMTOKEN | []锚的名称 | charset | 字符编码 | []所引用资源的字符编码 | type | MIME类型 | []所引用资源的MIME类型 | href | URL | []所引用资源的URL | hreflang | 语言代码 | []所引用资源的语言 | rel | 关系列表 | []从源文档到目标文档的关系 | rev | 关系列表 | []从目标文档到源文档的关系 | target | 框架名 | [base.target]目标框架或窗口名称 | 补充说明 | 一般放在多个元素的最内层 | 列表元素
有序|无序列表 | %Attrs; | <ol|ul> (li)+ </ol|ul> | compact | (compact) | []紧凑显示 |
列表项 | %Attrs; | <li> %Flow; </li> |
定义列表 | %Attrs; | <dl> (dt,dd*)+ </dl> | compact | (compact) | []紧凑显示 |
术语 | %Attrs; | <dt> %INLINE; </dt> |
解释 | %Attrs; | <dd> %Flow; </dd> | 文本元素
内联样式容器 | %Attrs; | <span> %INLINE; </span> |
地址 | %Attrs; | <address> %INLINE; </address> |
预格式化文本 | %Attrs; | <pre> (%INLINE; - "img|object") </pre> |
大块引用 | %Attrs; | <blockquote> %BLOCK; </blockquote> | cite | URL | []引用内容的来源 |
长|短内联引用 | %Attrs; | <cite|q> %INLINE; </cite|q> |
一般|重点强调 | %Attrs; | <em|strong> %INLINE; </em|strong> |
首用术语 | %Attrs; | <dfn> %INLINE; </dfn> |
普通|首字母缩写 | %Attrs; | <abbr|acronym> %INLINE; </abbr|acronym> |
样例 | %Attrs; | <samp> %INLINE; </samp> |
键盘输入 | %Attrs; | <kbd> %INLINE; </kbd> |
代码|变量 | %Attrs; | <code|var> %INLINE; </code|var> | 替换元素
图像 | %Attrs; | <img ... /> | src | URL |
图像文件的位置 | alt | 简介 |
图像替代文本,鼠标停留时会显示其内容 | longdesc | URL | []对图像进行详细描述的页面 | height | 长度 | []高度 | width | 长度 | []宽度 | usemap | URL | []客户端图像映射,其值为期望的<map>元素的name属性值。 | ismap | (ismap) | []服务端图像映射(位于<a>中),将单击处x,y坐标发给<a>的href属性指定的处理程序。 |
客户端图像映射 | %Attrs; | <map> area+ </map> | id | ID |
此处id为必需属性 | name | NMTOKEN |
用来被usemap属性引用的唯一标识符 |
图像映射区域 | %Attrs; %Focus; | <area ... /> | shape | (rect|circle|poly) | ["rect"]区域形状(矩形|圆|多边形) | coords | 坐标序列 | []矩形:"x1,y1,x2,y2" 圆:"x,y,R" 多边形:"x1,y1,x2,y2,x3,y3,..." | href | URL | []该区域对应的URL | nohref | (nohref) | []表明没有文档与这个区域有关,单击此区域没有任何效果。 | alt | 简介 |
对该区域的简短描述,鼠标停留时会显示其内容 | target | 框架名 | [base.target]目标框架或窗口名称 |
内联框架 | %Core; | <iframe> %Flow; </iframe> | name | NMTOKEN | []框架的名称,将成为target属性的目标 | src | URL | []显示在该框架中的初始文档 | frameborder | (1|0) | ["1"]边框:显示|不显示 | scrolling | (auto|yes|no) | ["auto"]滚动条:自动|始终显示|禁止显示 |
嵌入对象 | %Attrs; | <object> param*, %Flow; </object> | declare | (declare) | []仅声明该对象而不将其实例化 | classid | URL | []对象的URL | codebase | URL | []对象源代码的URL | data | URL | []需要被对象处理的数据 | type | MIME类型 | []被处理的数据的MIME类型 | codetype | MIME类型 | []源代码的MIME类型 | archive | URL列表 | []对象所使用的资源的URL列表 | standby | 简介 | []对象下载完毕前显示的消息 | height | 长度 | []高度 | width | 长度 | []宽度 | usemap | URL | []与对象一起使用的图像映射 | name | NMTOKEN | []定义对象的名字 | tabindex | 正整数 | []使用Tab键切换焦点时的顺序 | 补充说明 | 嵌入Flash示例:
<objectwidth="宽度" height="高度" standby="对象下载完毕前显示的消息" data="swf路径"type="application/x-shockwave-flash"classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0">
<param name="movie" value="swf路径" />
<img src="替代GIF" />
</object> |
对象参数 | | <param ... /> | name | CDATA |
参数名 | value | CDATA |
参数值 | valuetype | (data|ref|object) | ["data"]参数值的数据类型(数据|引用|对象) | type | MIME类型 | []参数的MIME类型 | 表单元素
表单 | %Attrs; | <form> (%block; | script)* </form> | action | URL |
接收表单数据的程序 | method | (get|post) | ["get"]提交数据的方法,get能传递的数据长度(编码后)不超过1024字符且不能上传文件,post无此限制。 | enctype | MIME类型 | ["application/x-www-form-urlencoded"]另一值"multipart/form-data"仅在上传文件时使用,且此时必须用post方法。 | onsubmit | js脚本 | []提交数据前执行的js脚本 | onreset | js脚本 | []重置数据前执行的js脚本 | target | 框架名 | [base.target]将表单结果重定向到目标框架或窗口名称 |
字段组 | %Attrs; | <fieldset> legend?, %Flow; </fieldset> |
字段组标签 | %Attrs; | <legend> %INLINE; </legend> |
字段标签 | %Attrs; | <label> %INLINE; </label> | for | IDREF |
目标字段的id属性值 |
单行文本|密码框 | %Attrs; %Focus; | <input type="text|password" ... /> | name | CDATA |
字段名 | value | CDATA |
字段默认值 | disabled | (disabled) | []禁用该控件(灰显),其值不会提交给服务器 | readonly | (readonly) | []其值不能被用户修改,但是其值会提交给服务器 | size | 正整数 | []控件长度(按字符数计算) | maxlength | 正整数 | []允许输入的最大字符数 | onselect | js脚本 | []选中事件 | onchange | js脚本 | []改变字段值事件 |
隐藏文本 | %Core; | <input type="hidden" ... /> | name | CDATA |
字段名 | value | CDATA |
字段值 |
文件上传 | %Attrs; %Focus; | <input type="file" ... /> | name | CDATA |
字段名 | value | CDATA | []文件名(含路径)默认值 | disabled | (disabled) | []禁用该控件(灰显),其值不会提交给服务器 | readonly | (readonly) | []其值不能被用户修改,但是其值会提交给服务器 | size | 正整数 | []控件长度(按字符数计算) | onchange | js脚本 | []改变字段值事件 | accept | MIME列表 | []限制用户可选择的文件类型 | 补充说明 | 必须有 form.method="post" 和 form.enctype="multipart/form-data" |
单选|复选 | %Attrs; %Focus; | <input type="radio|checkbox" ... /> | name | CDATA |
字段名(单选按钮使用它进行分组) | value | CDATA |
字段值 | checked | (checked) | []表示默认选中 | disabled | (disabled) | []禁用该控件(灰显),其值不会提交给服务器 | readonly | (readonly) | []其值不能被用户修改,但是其值会提交给服务器 |
图像提交按钮 | %Attrs; %Focus; | <input type="image" ... /> | name | CDATA | []字段名,浏览器会将单击处的 name.x, name.y 坐标发送给服务器 | disabled | (disabled) | []禁用该控件(灰显),其值不会提交给服务器 | src | URL |
图像的URL | alt | CDATA |
替代文字 |
通用按钮 | %Attrs; %Focus; | <button> (%Flow - a,表单元素) </button> | name | CDATA | []字段名 | value | CDATA | []字段值(并不显示在按钮上) | type | (button|submit|reset) | ["submit"]按钮类型(单击|提交|重置) | disabled | (disabled) | []禁用该控件(灰显),其值不会提交给服务器 |
选择列表 | %Attrs; %Focus; | <select> (optgroup|option)+ </select> | name | CDATA |
字段名 | size | 正整数 | ["1|4"]同时显示的项数,不设multiple时默认为1,反之为4 | multiple | (multiple) | []允许多选,不设置则为单选 | disabled | (disabled) | []禁用该控件(灰显),其值不会提交给服务器 | onchange | js脚本 | []改变字段值事件 |
选项组 | %Attrs; | <optgroup> (option)+ </optgroup> | label | 简介 |
该组的标签(名称),将会显示在每组首部 | disabled | (disabled) | []禁用该控件(灰显),其值不会提交给服务器 |
选项 | %Attrs; | <option> #PCDATA </option> | value | CDATA | [#PCDATA]条目的值,默认为元素包含的文本 | selected | (selected) | []表示默认选中 | disabled | (disabled) | []禁用该控件(灰显),其值不会提交给服务器 |
多行文本 | %Attrs; %Focus; | <textarea> #PCDATA </textarea> | name | CDATA |
字段名 | rows | 正整数 |
输入区域的行数 | cols | 正整数 |
输入区域的列数 | disabled | (disabled) | []禁用该控件(灰显),其值不会提交给服务器 | readonly | (readonly) | []其值不能被用户修改,但是其值会提交给服务器 | onselect | js脚本 | []选中事件 | onchange | js脚本 | []改变字段值事件 | 表格元素
表格 | %Attrs; | <table> caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+) </table> | summary | 简介 | []对表格内容的摘要描述 |
表格标题 | %Attrs; | <caption> %INLINE; </caption> |
列组 | %Attrs; | <colgroup> (col)* </colgroup> | span | 正整数 | ["1"]该组的列数(紧接上一个列组) | width | 混合长度 | []宽度 | align | (left|center|right) | []水平对齐 | valign | (top|middle|bottom|baseline) | []垂直对齐 |
列 | %Attrs; | <col ... /> | span | 正整数 | ["1"]影响的列数(紧接上一个列) | width | 混合长度 | []宽度 | align | (left|center|right) | []水平对齐 | valign | (top|middle|bottom|baseline) | []垂直对齐 | 补充说明 | 仅用于不含span属性的<colgroup>元素中 |
表头|表脚|表正文 | %Attrs; | <thead|tfoot|tbody> (tr)+ </thead|tfoot|tbody> | align | (left|center|right) | []水平对齐 | valign | (top|middle|bottom|baseline) | []垂直对齐 | 补充说明 | 必需保持 头 -> 脚 -> 正文 的顺序 |
表格行 | %Attrs; | <tr> (th|td)+ </tr> | align | (left|center|right) | []水平对齐 | valign | (top|middle|bottom|baseline) | []垂直对齐 |
表头|数据单元格 | %Attrs; | <th|td> %Flow; </th|td> | abbr | 简介 | []单元格内容缩写 | axis | CDATA | []一系列空格分割关键字列表,用于形成一个查询,而单元格的内容就是查询的结果 | scope | (row|col|rowgroup|colgroup) | [](仅<th>)关联到<td>:所在行|所在列|行组|列组 | rowspan | 正整数 | ["1"]跨行数 | colspan | 正整数 | ["1"]跨列数 | nowrap | (nowrap) | []禁止换行 | align | (left|center|right) | []水平对齐 | valign | (top|middle|bottom|baseline) | []垂直对齐 | height | 长度 | []高度 | width | 长度 | []宽度 |
|
|