CSS积累饥人谷技术博客游戏与测评

DOCTYPE声明及模式

2017-03-18  本文已影响19人  饥人谷_晴天小雨多云

文档声明

DOCTYPE,文档类型定义(DTD),声明了HTML文档的类型,让浏览器知道应给使用哪个规范来解析文档。<!DOCTYPE>声明必须再HTML文档的第一行,但这并不是一个HTML标签

严格模式(亦称标准模式)

有具体的DOCTYPE声明,浏览器按照W3C规范解析

混杂模式(亦称过度模式)

没有具体的DOCTYPE声明,浏览器按照自己的规范解析

注意 HTML5,没有严格和混杂之分;而且HTML5语法相当宽松,尽最大可能向后兼容。

具体声明格式

  1. <!DOCTYPE html> HTML5 声明
  2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> HTML4.01严格 声明
  3. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> HTML4.01混杂模式
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> XHTML1.0严格模式
  5. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> XHTML1.0 混杂模式

严格模式和混杂模式的来源

当年Netscape4(网景公司早期的浏览器)和IE4(微软公司早期的浏览器)实现CSS机制时,并没有遵循W3C提出的标准。Netscape4 提供了糟糕的支持,而IE4 虽然接近标准,但依旧未能完全正确的支持标准。尽管IE 5 修复了IE4 许多的问题,但是依然延续CSS实现中的其它故障(主要是盒模型问题)。

为了保障自己的网站在各个浏览器上显示正确,网页开发者们不得不依据各个浏览器自身的规范来使用css,因此大部分网站的css实现并不符合W3C规范的标准。

然而随着标准一致性越来越重要,浏览器开发商不得不面临一个艰难的抉择:逐渐遵循W3C的标准是前进的方向。但是改变现有的 css,完全去遵循标准,会使许多旧网站或多或少受到破坏,如果浏览器突然以正确的方式解析现存的css,陈旧的网站的显示必然会受到影响。所以,所有的浏览器都需要提供两种模式:混杂模式服务于旧式规则,而严格模式服务于标准规则。

参考资料

上一篇 下一篇

猜你喜欢

热点阅读