HTML的一些小点点(2)—严格模式&混合模式
2018-01-28 09:18
169 查看
今天,来说说!Doctype的作用,严格模式和混杂模式的区别、以及如何触发这两种模式。
在解析网页时,浏览器将使用这些规则检查页面的有效性并且采取相应的措施。浏览器通过分析页面的 DOCTYPE 声明来了解要使用哪个 DTD ,由此知道要使用 HTML 的哪个版本。
而浏览器究竟是使用严格模式还是混杂模式呈现页面与网页中的 DTD (文件类型定义)直接相关。
包含过度 DTD 和 URI 的 DOCTYPE 也导致页面以标准模式呈现。
但是有过度 DTD 而没有 URI 会导致页面以混杂模式呈现。
DOCTYPE 不存在或形式不正确会导致 HTML 和 XHTML 文档以混杂模式呈现。
< !– XHTML 1.0 严格型 –>
一、HTML中Doctype的作用:
声明叫做文件类型定义(DTD),声明的作用为了告诉浏览器该文件的类型。让浏览器解析器知道应该用哪个规范来解析文档。声明必须在 HTML 文档的第一行,这并不是一个 HTML 标签。DTD(文档类型定义)是一组机器可读的规则,他们定义 XML 或 HTML 的特定版本中允许有什么,不允许有什么。在解析网页时,浏览器将使用这些规则检查页面的有效性并且采取相应的措施。浏览器通过分析页面的 DOCTYPE 声明来了解要使用哪个 DTD ,由此知道要使用 HTML 的哪个版本。
二、严格模式和混杂模式的区别:
首先,严格模式(又称标准模式,Standards模式)和混杂模式(Quirk模式)都是指浏览器的呈现模式,要与Doctype的两种风格区别开来(严格( strict )和过渡( transitional ),过渡 DOCTYPE 的目的是帮助开发人员从老版本迁移到新版本)。严格模式:
又称标准模式,是指浏览器按照 W3C 标准解析代码,呈现页面混杂模式:
又称怪异模式或兼容模式,是指浏览器用自己的方式解析代码,即使用一种比较宽松的向后兼容的方式来显示页面而浏览器究竟是使用严格模式还是混杂模式呈现页面与网页中的 DTD (文件类型定义)直接相关。
对于 HTML 4.01 文档,
包含严格 DTD 的 DOCTYPE 常常导致页面以标准模式呈现。包含过度 DTD 和 URI 的 DOCTYPE 也导致页面以标准模式呈现。
但是有过度 DTD 而没有 URI 会导致页面以混杂模式呈现。
DOCTYPE 不存在或形式不正确会导致 HTML 和 XHTML 文档以混杂模式呈现。
对于HTML5文档,
HTML5 没有 DTD ,因此也就没有严格模式与混杂模式的区别,HTML5 有相对宽松的语法,实现时,已经尽可能大的实现了向后兼容。( HTML5 没有严格和混杂之分)三、如何触发文档模式
触发混杂模式:
如果在文档开始处没有发现文档类型声明,则所有浏览器都会默认开启混杂模式。但采用混杂模式不是什么值得推荐的做法,因为不同浏览器在这种模式下的行为差异非常大,如果不使用某些hack技术,跨浏览器的行为根本就没有一致性可言。触发标准模式:
< !– HTML 4.01 严格型 –><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
< !– XHTML 1.0 严格型 –>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
相关文章推荐
- css定位浮动 &html 严格模式混杂模式
- 微信公众号与HTML 5混合模式揭秘1——如何部署JSSDK
- 谈谈一些有趣的CSS题目(十七)-- 不可思议的颜色混合模式 mix-blend-mode
- Doctype & 严格模式与混杂模式
- 【HTML】之混杂模式和严格模式
- HTML:关于HTML的Doctype和严格模式与混杂模式
- JavaScript 严格模式 - "strict mode"
- 一步一步学Silverlight 2系列(23):Silverlight与HTML混合之无窗口模式
- 微信公众号与HTML 5混合模式揭秘2——分享手机相册中照片
- HTML的一些小点点(3)—DOM树
- 微信公众号与HTML 5混合模式揭秘4——jssdk调用微信扫一扫
- 一步一步学Silverlight 2系列(23):Silverlight与HTML混合之无窗口模式
- HTML的 Doctype 作用 ? 严格模式与混杂模式如何区分?它们有何意义 ?
- 一步一步学Silverlight 2系列(23):Silverlight与HTML混合之无窗口模式
- 严格模式下可用,非严格模式下不可用或不同的一些小知识总结
- 一步一步学Silverlight 2系列(23):Silverlight与HTML混合之无窗口模式
- 【JS&Html】一些总结
- 一步一步学Silverlight 2系列(23):Silverlight与HTML混合之无窗口模式 (转)
- 学Silverlight 2系列(23):Silverlight与HTML混合之无窗口模式
- html严格模式和标准模式,怎么触发这两种模式