XHTML

过渡型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>

通用字符实体

实体含义
&quot;"
&amp;&
&lt;<
&gt;>

属性值的数据类型

[注意]所有属性值编码后的长度都不能超过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>
xmlnsURL[定值"http://www.w3.org/1999/xhtml"]本篇文档的XML命名空间
文档头%Lang;<head> (meta|link|style|script|object)*, base?, title </head>
文档标题%Lang;<title> #PCDATA </title>
文档基准 <base ... />
hrefURL[]基准URL。比如:"/info/"
target框架名["_self"]默认的目标框架或窗口名称
元信息%Lang;<meta ... />
http-equivCDATA[]等价HTTP头字段名称
nameCDATA[]元信息的名称
contentCDATA[*]名称对应的值
补充说明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 ... />
hrefURL[*]目标文档
rel关系列表[*]从源文档到目标文档的关系
rev关系列表[]从目标文档到源文档的关系
hreflang语言代码[]目标文档的语言
charset字符编码[]目标文档的字符编码
typeMIME类型[]目标文档的MIME类型
media设备列表[]目标文档所属设备类型
补充说明rel与rev属性的通常用法:
a)在文档集中导航(start, contents, prev, next, index, end, help)
c)连接到该文档的可替代版本(rel="alternate"),如:另一语言版本、RSS版本、PDF版本、打印版本
样式表%Lang;<style> #PCDATA </style>
typeMIME类型[定值"text/css"]
media设备列表["screen"]适用的媒体类型
title简介[]样式说明
JS脚本 <script> #PCDATA </script>
typeMIME类型[定值"text/javascript"]
srcURL[]引用的外部javascript代码(*.js)位置
charset字符编码[]与src属性一起使用,指明外部js文件的字符集
defer(defer)[]指明js脚本并不修改XHTML代码,从而可推迟脚本的执行
文档体%Attrs;<body> %BLOCK; </body>
onloadjs脚本[]文档被完全载入完毕时的事件
onunloadjs脚本[]文档被卸载前的事件

结构元素

标题%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>
nameNMTOKEN[]锚的名称
charset字符编码[]所引用资源的字符编码
typeMIME类型[]所引用资源的MIME类型
hrefURL[]所引用资源的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>
citeURL[]引用内容的来源
长|短内联引用%Attrs;<cite|q> %INLINE; </cite|q>
换行%Core;<br ... />
一般|重点强调%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 ... />
srcURL[*]图像文件的位置
alt简介[*]图像替代文本,鼠标停留时会显示其内容
longdescURL[]对图像进行详细描述的页面
height长度[]高度
width长度[]宽度
usemapURL[]客户端图像映射,其值为期望的<map>元素的name属性值。
ismap(ismap)[]服务端图像映射(位于<a>中),将单击处x,y坐标发给<a>的href属性指定的处理程序。
客户端图像映射%Attrs;<map> area+ </map>
idID[*]此处id为必需属性
nameNMTOKEN[*]用来被usemap属性引用的唯一标识符
图像映射区域%Attrs; %Focus;<area ... />
shape(rect|circle|poly)["rect"]区域形状(矩形|圆|多边形)
coords坐标序列[]矩形:"x1,y1,x2,y2" 圆:"x,y,R" 多边形:"x1,y1,x2,y2,x3,y3,..."
hrefURL[]该区域对应的URL
nohref(nohref)[]表明没有文档与这个区域有关,单击此区域没有任何效果。
alt简介[*]对该区域的简短描述,鼠标停留时会显示其内容
target框架名[base.target]目标框架或窗口名称
内联框架%Core;<iframe> %Flow; </iframe>
nameNMTOKEN[]框架的名称,将成为target属性的目标
srcURL[]显示在该框架中的初始文档
frameborder(1|0)["1"]边框:显示|不显示
scrolling(auto|yes|no)["auto"]滚动条:自动|始终显示|禁止显示
嵌入对象%Attrs;<object> param*, %Flow; </object>
declare(declare)[]仅声明该对象而不将其实例化
classidURL[]对象的URL
codebaseURL[]对象源代码的URL
dataURL[]需要被对象处理的数据
typeMIME类型[]被处理的数据的MIME类型
codetypeMIME类型[]源代码的MIME类型
archiveURL列表[]对象所使用的资源的URL列表
standby简介[]对象下载完毕前显示的消息
height长度[]高度
width长度[]宽度
usemapURL[]与对象一起使用的图像映射
nameNMTOKEN[]定义对象的名字
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 ... />
nameCDATA[*]参数名
valueCDATA[*]参数值
valuetype(data|ref|object)["data"]参数值的数据类型(数据|引用|对象)
typeMIME类型[]参数的MIME类型

表单元素

表单%Attrs;<form> (%block; | script)* </form>
actionURL[*]接收表单数据的程序
method(get|post)["get"]提交数据的方法,get能传递的数据长度(编码后)不超过1024字符且不能上传文件,post无此限制。
enctypeMIME类型["application/x-www-form-urlencoded"]另一值"multipart/form-data"仅在上传文件时使用,且此时必须用post方法。
onsubmitjs脚本[]提交数据前执行的js脚本
onresetjs脚本[]重置数据前执行的js脚本
target框架名[base.target]将表单结果重定向到目标框架或窗口名称
字段组%Attrs;<fieldset> legend?, %Flow; </fieldset>
字段组标签%Attrs;<legend> %INLINE; </legend>
字段标签%Attrs;<label> %INLINE; </label>
forIDREF[*]目标字段的id属性值
单行文本|密码框%Attrs; %Focus;<input type="text|password" ... />
nameCDATA[*]字段名
valueCDATA[*]字段默认值
disabled(disabled)[]禁用该控件(灰显),其值不会提交给服务器
readonly(readonly)[]其值不能被用户修改,但是其值会提交给服务器
size正整数[]控件长度(按字符数计算)
maxlength正整数[]允许输入的最大字符数
onselectjs脚本[]选中事件
onchangejs脚本[]改变字段值事件
隐藏文本%Core;<input type="hidden" ... />
nameCDATA[*]字段名
valueCDATA[*]字段值
文件上传%Attrs; %Focus;<input type="file" ... />
nameCDATA[*]字段名
valueCDATA[]文件名(含路径)默认值
disabled(disabled)[]禁用该控件(灰显),其值不会提交给服务器
readonly(readonly)[]其值不能被用户修改,但是其值会提交给服务器
size正整数[]控件长度(按字符数计算)
onchangejs脚本[]改变字段值事件
acceptMIME列表[]限制用户可选择的文件类型
补充说明必须有 form.method="post" 和 form.enctype="multipart/form-data"
单选|复选%Attrs; %Focus;<input type="radio|checkbox" ... />
nameCDATA[*]字段名(单选按钮使用它进行分组)
valueCDATA[*]字段值
checked(checked)[]表示默认选中
disabled(disabled)[]禁用该控件(灰显),其值不会提交给服务器
readonly(readonly)[]其值不能被用户修改,但是其值会提交给服务器
图像提交按钮%Attrs; %Focus;<input type="image" ... />
nameCDATA[]字段名,浏览器会将单击处的 name.x, name.y 坐标发送给服务器
disabled(disabled)[]禁用该控件(灰显),其值不会提交给服务器
srcURL[*]图像的URL
altCDATA[*]替代文字
通用按钮%Attrs; %Focus;<button> (%Flow - a,表单元素) </button>
nameCDATA[]字段名
valueCDATA[]字段值(并不显示在按钮上)
type(button|submit|reset)["submit"]按钮类型(单击|提交|重置)
disabled(disabled)[]禁用该控件(灰显),其值不会提交给服务器
选择列表%Attrs; %Focus;<select> (optgroup|option)+ </select>
nameCDATA[*]字段名
size正整数["1|4"]同时显示的项数,不设multiple时默认为1,反之为4
multiple(multiple)[]允许多选,不设置则为单选
disabled(disabled)[]禁用该控件(灰显),其值不会提交给服务器
onchangejs脚本[]改变字段值事件
选项组%Attrs;<optgroup> (option)+ </optgroup>
label简介[*]该组的标签(名称),将会显示在每组首部
disabled(disabled)[]禁用该控件(灰显),其值不会提交给服务器
选项%Attrs;<option> #PCDATA </option>
valueCDATA[#PCDATA]条目的值,默认为元素包含的文本
selected(selected)[]表示默认选中
disabled(disabled)[]禁用该控件(灰显),其值不会提交给服务器
多行文本%Attrs; %Focus;<textarea> #PCDATA </textarea>
nameCDATA[*]字段名
rows正整数[*]输入区域的行数
cols正整数[*]输入区域的列数
disabled(disabled)[]禁用该控件(灰显),其值不会提交给服务器
readonly(readonly)[]其值不能被用户修改,但是其值会提交给服务器
onselectjs脚本[]选中事件
onchangejs脚本[]改变字段值事件

表格元素

表格%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简介[]单元格内容缩写
axisCDATA[]一系列空格分割关键字列表,用于形成一个查询,而单元格的内容就是查询的结果
scope(row|col|rowgroup|colgroup)[](仅<th>)关联到<td>:所在行|所在列|行组|列组
rowspan正整数["1"]跨行数
colspan正整数["1"]跨列数
nowrap(nowrap)[]禁止换行
align(left|center|right)[]水平对齐
valign(top|middle|bottom|baseline)[]垂直对齐
height长度[]高度
width长度[]宽度

 
<think>好的,我现在需要回答用户关于XHTML的问题,用户想知道XHTML是什么以及如何使用它。首先,我得回顾一下XHTML的基本定义和背景。 根据引用[1],XHTML是一种结合了HTML和XML的标记语言,目的是让网页代码更规范、更严格。这让我想到,XHTML相比HTML有什么不同呢?比如语法上更严格,标签必须闭合,属性必须小写等等。用户可能还关心为什么要使用XHTML,可能涉及到可扩展性、兼容性这些优点。 接下来,用户问如何使用XHTML。这里需要分步骤说明,比如文档结构、语法规则,还有如何从HTML升级到XHTML。引用[1]提到了XHTML的三种文档类型:Strict、Transitional和Frameset,每种的应用场景不同。例如,Transitional适用于需要兼容旧代码的情况,而Strict则要求更严格的语法。 然后,引用[4]和[5]提到了XHTML的属性规则,比如必须小写、用引号包围属性值等。这些具体的语法要求需要详细说明,可能还要举例子,比如正确的标签写法是什么样的,错误的写法又是怎样的。比如<img>标签必须有alt属性,这在引用[1]里提到过,不能省略。 另外,引用[3]提到XHTML和CSS的关系,XHTML负责结构,CSS负责样式。这说明在使用XHTML时,需要结合CSS来实现网页的美化,这也是现代网页设计的标准做法。 用户可能还关心如何将现有的HTML转换为XHTML。引用[2]和[1]中的升级方法,比如修改DOCTYPE声明,检查标签闭合,属性格式等。这部分需要给出具体的步骤,可能还要注意常见错误,比如标签嵌套不正确或者属性没有引号的问题。 最后,总结XHTML的优点,如可扩展性、跨平台兼容等,来自引用[5],让用户了解使用XHTML的好处。同时,生成的相关问题要覆盖XHTML的语法、升级方法、与HTML的区别以及应用场景,帮助用户进一步学习。 需要确保回答结构清晰,分点说明,并且正确引用资料中的内容,比如引用标识放在相关段落的末尾。同时,代码示例部分可能需要展示一个基本的XHTML文档结构,用正确的标签和DOCTYPE声明,帮助用户直观理解。</think>### XHTML的定义与使用指南 #### 1. **XHTML是什么?** XHTML(可扩展超文本标记语言)是一种基于$XML$的严格版$HTML$,结合了$HTML$的实用性与$XML$的规范性。其核心目标是提升网页代码的结构化程度,确保跨浏览器的兼容性和未来可扩展性[^1]。例如,XHTML要求所有标签必须闭合、属性值必须用引号包裹,这与传统$HTML$的松散语法形成对比。 #### 2. **XHTML的核心规范** - **语法规则**: - 标签和属性名必须小写,如`<div>`而非`<DIV>`[^4]。 - 属性值必须用双引号包围,例如:`<input type="text" />`[^4]。 - 所有标签必须显式闭合,如`<br />`或`<p>内容</p>`。 - 禁止属性简写,例如`<input checked="checked" />`而非`<input checked>`[^4]。 - **文档结构**: - 必须包含`<!DOCTYPE>`声明,例如严格模式的声明为: ```html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> ``` - 根元素需指定XML命名空间:`<html xmlns="http://www.w3.org/1999/xhtml">`。 #### 3. **如何使用XHTML?** **步骤1:选择文档类型** - **XHTML 1.0 Strict**:适用于全新项目,要求完全遵循严格语法,禁止使用表现性标签(如`<font>`)[^1]。 - **XHTML 1.0 Transitional**:允许过渡性标签(如`<center>`),适合需要兼容旧代码的场景[^2]。 - **XHTML 1.0 Frameset**:仅在需要框架布局时使用。 **步骤2:编写基础结构** ```html <!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"> <head> <title>示例页面</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <p>这是一个段落。</p> <img src="image.jpg" alt="图片描述" /> </body> </html> ``` **步骤3:结合CSS实现样式** 通过外部样式表或内联样式美化页面: ```html <link rel="stylesheet" type="text/css" href="style.css" /> <!-- 或 --> <div style="color: red;">红色文字</div> ``` XHTML负责结构,而$CSS$控制表现,这种分离提高了代码的可维护性[^3]。 #### 4. **从HTML升级到XHTML的关键点** - **标签闭合**:单标签(如`<img>`)需添加斜杠:`<img />`。 - **嵌套正确性**:禁止交叉嵌套,例如`<p><strong>文本</p></strong>`是无效的。 - **属性规范化**:避免使用`name`属性,改用`id`(如`<div id="header">`)[^1]。 #### 5. **XHTML的优势** - **跨平台兼容**:严格语法确保在不同设备上解析一致[^5]。 - **可扩展性**:支持与$XML$工具链(如$XSLT$)集成,便于数据转换[^1]。 - **未来兼容**:为向$HTML5$过渡奠定基础,因$HTML5$吸收了部分XHTML特性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值