Skip to content
快看这页儿写了啥...

DOCTYPE 有什么作用? 严格模式与混杂模式如何区分?它们有何意义?

题干

  • DOCTYPE

题解

DOCTYPE 是一种声明,它告诉浏览器当前文档使用的是哪种 HTML 规范,以便浏览器正确地解析和渲染文档。

DOCTYPE 的作用有以下几点:

  • 可以让浏览器选择使用 严格模式混杂模式 来显示文档。严格模式是指浏览器按照 W3C 标准来解析和显示文档,而混杂模式是指浏览器用自己的方式来解析和显示文档,通常会忽略一些标准的要求,以保持对旧网站的兼容性。
  • 可以让浏览器知道文档使用的是 HTML 还是 XHTML,以便浏览器采用相应的语法和规则来解析文档。HTMLXHTML 的主要区别是 XHTML 必须遵循 XML 的格式规范,比如标签必须闭合,属性必须用引号包围,标签名必须小写等。
  • 可以让浏览器知道文档使用的是哪个版本的 HTMLXHTML,以便浏览器根据不同版本的特性和功能来解析和显示文档。例如,HTML5 引入了一些新的语义元素和属性,如果浏览器不知道文档使用的是 HTML5,就无法正确地识别和处理这些新特性。

严格模式与混杂模式区分的方法是看 DOCTYPE 声明是否完整和正确。

下面是一些常见的区分方法:

  • 如果 DOCTYPE 声明不存在或格式不正确,那么浏览器会采用混杂模式来显示文档。
  • 如果 DOCTYPE 声明存在且完整,那么浏览器会采用严格模式来显示文档。
  • 如果 DOCTYPE 声明存在但不完整,比如只有过渡类型(Transitional)而没有公共标识符(Public Identifier)或系统标识符(System Identifier),那么浏览器会根据不同的情况来决定使用严格模式还是混杂模式。一般来说,IE 会使用混杂模式,而其他浏览器会使用严格模式。

严格模式与混杂模式的意义主要体现在以下几个方面:

  • 严格模式与混杂模式会影响网页的布局和样式的渲染效果。例如,在盒模型的计算上,严格模式会按照 W3C 标准来计算元素的宽度和高度,而混杂模式会按照 IE 旧版本的方式来计算元素的宽度和高度。
  • 严格模式与混杂模式会影响网页的功能和交互性。例如,在 JS 的操作上,严格模式会按照 W3C 标准来获取和设置元素的属性和事件,而混杂模式会按照IE旧版本的方式来获取和设置元素的属性和事件。
  • 严格模式与混杂模式会影响网页的可维护性和可扩展性。例如,在编码规范上,严格模式会要求开发者遵循 W3C 标准来编写符合语义和结构的代码,而混杂模式会允许开发者使用一些非标准的或已废弃的代码。

相关

HTML5 为什么只写 !DOCTYPE html ?

贡献者

isboyjc's avatar isboyjc

浏览量(PV)  次  ·  独立访客(UV)  人次
不正经的前端 | 八股 · 欢迎 star ⭐