DOCTYPE 的定义或许会引起IE中滚动条拖动缓慢停滞的现象

以前初学HTML的时候,直到现在做JSP页面,从来不知道这个<!DOCTYPE 是干嘛用的,曾经使用DREAMWEAVER创建页面都是自动生成的,而后使用ECLIPSE新建JSP也是自动生成。甚至对于一些简单的页面更是草率行事,用文本新建一个html文件,没有指定任何DOCTYPE。

在后来的使用中,却遇上了很多头疼的问题,例如不同的DOCTYPE会导致网页布局的效果不同,一旦轻易更改了DOCTYPE很有可能打乱现有整洁的布局。W3指定了很多套文档类型,有宽松的也有严格的,常用的HTML4有以下这些

<!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 XHTML 1.0 Strict//EN" “http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01//EN" “http://www.w3.org/TR/html4/strict.dtd">
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN" “http://www.w3.org/TR/html4/loose.dtd">
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.1//EN" “http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

HTML 5 的则使用
<!DOCTYPE html>

至于如何使用各个不同的声明以及区别,相信网上比比皆是(虽然我也未必能够一一总结)。

前面也说了,指定不同的dtd直接影响了网页的布局,所以在自己的网站尽量选好一个dtd,统一使用,而不要东一个transitional西一个loose或者strict。

那么DOCTYPE到底会引起什么可能的现象呢?

也是经过实际遇到的,经过测试,firefox并不存在此问题,而IE则存在,无论是IE8还是IE9,看来应该是浏览器对于DOCTYPE的诠释和规范不同,因此真正渲染起来就出现了差异。相信广大的程序员对于IE已经抓了不少头,严重的头发可能已经抓光了吧?地中海的形成往往和IE有关。所以在这里,我劝大家用IE的时候千万别碰头。

情况1:

曾经设置过这么一个效果,有20个词,不分英文还是中文,字体大小分别从12,14,16 … … 这么一直递增排列下去,DOCTYPE我使用的是

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN" “http://www.w3.org/TR/html4/loose.dtd">

Firefox测试:没问题

IE(8)测试:滚动条很卡,拖动很困难,就很像没装显卡驱动一样

系统情况:WIN 7 32位系统

把DOCTYPE去掉,

firefox 和 IE 拖动滚动条都不卡了,杯具的是,排版会乱的一塌糊涂。

情况2:

http://www.openfav.com/front/whatisnew.do(如果没有出现卡的情况那说明我已经修复了)

页面采用了三四次的ajax页面异步加载,

加载了大量JS文件,

但文档内容并不是很多,图片也不是很多。

DOCTYPE使用的是

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.1//EN" “http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

Firefox测试:没问题

IE(8/9)测试:滚动条很卡,拖动很困难,就很像没装显卡驱动一样

系统情况:WIN 7 64位系统

WIN 7 32位系统中的IE并没有此问题。

猜测是不是DOCTYPE的问题,32位和64位的IE对此认识有分别吗?未知,但实践告诉我此情况在IE中真的存在。

所以,IE中若出现在打开某些网页时滚动条拉动很卡的问题,首先确认下是否是DOCTYPE的问题吧。至于什么没装显卡驱动的解释,我想貌似这个年代没有多少人装个系统会忘记装显卡驱动了。

 

 

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料