转载请注明来源:http://zazawind.appspot.com
整理以往的web页面,情急之时,css效果总是达不到预期效果,静心翻阅,才发现原是页面之中没有DOCTYPE声明。DOCTYPE很重要。为了对它的作用有个基本的认识, W3C上一篇关于doctype的QA Tip通俗易懂,现将该文翻译过来,以飨读者。
《别忘了加上文档类型》,
添加什么?
我们清楚,HTML页面不止一种,有HTML 4.01 Strict, HTML 4.01 Transitional, XHTML 1.0 Strict等多种标准,这些标准都在W3C规范中定义,规范同时也给出了机器可读的语言文档:描述合法的结构、元素和属性。这些都是以DTD文件形式定义。
对于HTML文档处理工具(比如浏览器)来说,需要知道(x)html文档是用了哪种DTD,这就是为什么每个(X)HTML文档都需要在开头就有个DTD声明,比如:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
由于给定了它的语法,DTD声明通常就简称为文档类型。
为什么?
为什么要描述一个文档类型(doctype)?这是因为它定义了你的页面文档所确切使用的(X)HTML的版本,而这一点是浏览器和其它文档处理工具的所需的关键信息点。
比如,页面文档上描述了文档类型(DOCTYPE),那么你就可以用工具比如Markup Validator来检查你的(X)HTML语法(可以发现不同浏览器对页面渲染的效果问题)。如果这些工具不知道你的页面所使用的哪种文档,它们将无法工作(检查)。
最重要的是,对于大多数的著名浏览器而言,文档类型(doctype)声明会减少很多不必要的猜测,因此就可以触发浏览器的标准解析模式,该模式下对文档的解析(和渲染)不仅速度快,它还对那些没有文档类型(doctype)声明所引起的不一致的地方保持兼容和自由(译者注:指那些在不同标准有不同意义的元素等保持兼容)。
转载请注明来源:http://zazawind.appspot.com
参考文献:
1. Don't forget to add a doctype, http://www.w3.org/QA/Tips/Doctype
http://www.w3.org/QA/2002/04/valid-dtd-list.html
2. Markup Validator, http://validator.w3c.org
3. Fixing your site with the right Doctype, Jeffrey Zeldman, http://www.alistapart.com/articles/doctype/