一,xhtml是html根据xml进行重新规范化而产生的,所以,关于良构文档的所有规则,对视同陌路都适用。
XHTML要求:
1,必须在文件顶部提供DTD声明:
<! DOCTYPE PUBLIC "-//W3C/DTD XHTML 1.0 Strict//EN" "">
2,必须在<html>中包含对xml名称空间的引用
<html xmlns="http://www.w3.org/TR/xhtml1">
3,XML是大小写敏感的,而且XHTML标记名称和属性名称必须小写。
4,开始标记和结束标记必须匹配,空元素必须适用<tag />一个空格(g和/之间有)的形式,标记必须正确地嵌套。
5,不能忽略<head>和<body>元素,而且头部中的第一个元素必须是<title>元素。
6,所有属性值必须用引号封闭,不能简化。<input checked="checked" />
7,为了避免<style>和<script>元素中的<和&字符被解释为开始标记,它们必须被包含在 CDATA行中:<script>
<![CDATA[
......UNESCAPED SCRIPT CONTENT
]]>
</script>
二,XHTML代码的向后兼容
1,处理指令
处理指令是不在浏览器中显示的元素,但是有些浏览器可能会显示它们。
2,空元素
写<br/>这样的空元素时,在标记名和斜线之间加空格,即<br />,这种形式相当于执行<br></br>。这种形式也适用于<img src="face.gif" />。
3,元素简化和空元素内容
当适用没有内容的非空元素时,不要采用简化形式。例如,如果你不希望指定页面标题,应该适用<title></title>,而不是<title />。
4,嵌入式的样式和脚本
如果你的样式单或脚本适用了字符<,&,]]>或--,那么应该适用外部的样式单或脚本,而不是包含CDATA行,另外当前将注释包含在样式单或脚本部分中,使其在不支持它们的旧式浏览器中隐藏,这种方法在将来可能会不起作用。但是,现在还应该继续使用这种方法。
5,属性值内的换行
不要在属性值内换行或加大量空格,因为不同的用户代理对这些情况的处理方式有差异。
6,Isindex
在文档头部中,不要包含一个以上的<isindex>元素。这个元素已经被<input>元素取代了。
7,.lang和xml:lang属性
在指定语言时,这两种属性都能用,而xml:lang用于可能产生混淆的情况下。
8,片段标识符
实际上,name属性已经被id属性替代,但是当前并非所有浏览器都支持后者。简单的解决方案同时包含两者,并确保它们的值相同的。<a name="sod" id="sod">...</a>
三,简单的例子
<?xml version="1.0" encoding="UTF-8" ?>
<!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="en" lang="en">
<head>
<title> First XHTML document </title>
</head>
<body>
<p> This is my first XHTML documet . </p>
</body>
</html>
四,XHTML文档的组成
1,版本声明
在每个文档的开头包含一个XML声明。它不是必须的。但是XHTML1.0标准“强烈鼓励”。
<?xml version="1.0" encoding="UTF-8"?>
encoding属性烦人缺省值是UTF-8。
2,DOCTYPE声明
在此处声明文档针对哪个DTD进行合法性检查,而且提供URL。
3,文档头部
文档头部用于包含关于文档的重要信息,这些信息不属于文档的普通流,文档头部中的信息通常不显示。
一下是允许出现在文档头部中的元素:
<title> <link> <meta> <object> <style> <script> <base>
根据XHTML规则<title>应该是第一个元素,而且必须存在。
4文档主体
5,注释
五,基本的XHTML元素
1,块元素
<div></div> 用于分割,他实际上用于样式单。通常此元素前后葛优一个换行,不是内置的垂直间距。
2,行内元素
<span></span> 用于范围。实际上,它只用于样式或类属性的载体。
六,属性
1,通用属性
id属性
class属性
style属性
2,表示形属性
几年来,HTML已经积累拉许多表示性属性。大多数情况下,反对使用这些属性,而用样式单代替。
如:align,backgroung, bgcolor, text, link, vlink, alink, 列表的type, hr的align,noshade,size, width,<font> <basefont>。
七,重复样式单的优先级。
规则是:最后一个样式但优于其他样式单,而嵌入的样式单优于外部样式单,行内样式单优于所有其它样式单。
八,链接
1,锚
<a name="anchor" ></a>
引用锚<a href="#anchor" ></a>
应用其他页面的锚<a href="xxx.html#anchor" > </a>
2,使用不同的协议进行链接
<a href="ftp://xxx.xxx.xxx"></a>
<a href="mailto:xxx@xxx.xx"></a>
3其他链接元素
1)<link>
2)<appplet>
3)<object>:通过它,任何对象都可以被嵌入进页面。对象可以是图像、多媒体文件,HTML文件,TEXT文件。<object>标记有data属性。如果浏览器不支持次标签,则,<object></object>中的文本将被显示出来。
4)<script>
九,框架
在XHTML中,框架已经正式放弃。
1,框架集<frameset>分割容器
<frame>定义各个框架及其内容。
2,行内框架<iframe>
<iframe src="text1.htm" >
xxxxx
</iframe>
3,<noframes>xxxx</noframes>如果浏览器不支持框架则显示这其中的文本。一般在最外围的</frameset>之前放置。
一○,名称空间
xmlns:[alias]="[namespace name]"
一一,DTD的三个版本
1,严格版
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" >
2,过渡版
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
多支持一些元素比如:<applet><center><font><noframes><iframe>....
3,框架集DTD
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd" >
比过渡版多支持<frame><frameset>元素。