严格型XHTML文档头与文档结构
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<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;(核心)
属性名 | 数据类型 | 解释 |
id | ID | []为元素定义一个唯一引用名,以供 超连接、样式表、小程序、其他元素 等引用。 |
class | CDATA | []指定元素内容的样式类。其值为用空格分隔的样式类名称列表。 |
title | 简介 | []为元素指定一个标题。鼠标停留时会显示其内容,常作为热点帮助。 |
%Lang;(语言)
属性名 | 数据类型 | 解释 |
xml:lang | 语言代码 | []指定元素内容的语言。 |
%Event;(事件)
属性名 | 数据类型 | 解释 |
onclick | js脚本 | []单击事件 |
ondblclick | js脚本 | []双击事件 |
onmousedown | js脚本 | []按下左键事件 |
onmouseup | js脚本 | []释放左键事件 |
onmouseover | js脚本 | []进入元素区域事件 |
onmousemove | js脚本 | []在元素内移动事件 |
onmouseout | js脚本 | []离开元素区域事件 |
onkeypress | js脚本 | []单击键盘事件 |
onkeydown | js脚本 | []按下键盘事件 |
onkeyup | js脚本 | []释放键盘事件 |
%Focus;(焦点)
属性名 | 数据类型 | 解释 |
accesskey | 唯一字母 | []定义选中该元素的快捷键(Alt+字母) |
tabindex | 正整数 | []使用Tab键切换焦点时的顺序 |
onfocus | js脚本 | []获得焦点事件 |
onblur | js脚本 | []失去焦点事件 |
%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示例: <object width="宽度"
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 | 长度 | []宽度 |