博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

关于DOCTYPE、DTD

Posted on 2012-08-10 10:45  itcmor  阅读(133)  评论(0)    收藏  举报

网页类型定义DOCTYPE、DTD详解

今天在用JQuery做菜单显示时,发现页面上出现了闪烁的很糟糕的效果,后来知道了原因是因为:DOCTYPE对于JQuery中的动画是有影响的,没有DOCTYPE定义时,在IE中,JQuery的动画会出现闪烁的糟糕效果,解决方案如下:

      xhtml有它自己的规则,怎样表明它运用了某一项规则呢?文档类型定义(Document Type Definition简称DTD),它起到的就是这个作用,它是一组机器可读的规则,每一个html版本都又一个对应的DTD,浏览器通过分析页面的DOCTYPE(文档类型)声明来了解要使用哪个DTD,然后才知道选择哪个版本的xhtml。

在过去运用html语言比较多的年代Html 4.01 Transitional是最常使用的,但现在谈到xhtml,那我们只说xhtml 1.0的三种主要文档类型:XHTML 1.0 过渡型、XHTML 1.0 严格型和XHTML 1.0 框架型。

XHTML 1.0过渡型:对XHTML 1.0规范的要求最不严格;允许使用层叠样式表和过渡性的格式化命令如字体命令;我们的大部分编码使用这种类型;XHTML 1.0严格型:规定只能使用层叠样式表;我们不使用这种类型;XHTML 1.0框架型:使用了框架的XHTML页面要求使用该类型;我们今后讲到的框架页面代码使用该类型。

只要您制作的是xhtml文档,那么DOCTYPE声明就必不可少,DOCTYPE声明是xhtml 开头的两行代码,在下面示例中使用的DTD是xhtml 1.0 Strict的DTD:

<!DOCTYPE html

PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

DOCTYPE通常包含制定DTD的URL,浏览器一般不读取它,只识别到常见的声明位置,就是以上代码的第二行Strict//EN位置,而且<!DOCTYPE> 没有结束标签。

xhtml 1.0过渡型

<!DOCTYPE html

PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

xhtml 1.0框架型

<!DOCTYPE html

PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

大多数可视化网页编辑器都可以在创建网页时自动添加文档类型声明 ,但一定要注意并了解你在使用的文档类型。
刚开始没注意,在自己从后台向前台写html后发现网页会莫名刷新。
 
再点击放大缩小或者用户选择上方列表中具体条目时,页面出错如下图
 
再将<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
替换为<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >,即可消除该bug。