关于文档声明的相关知识
作者:互联网
一、文档声明的作用?
告知浏览器当前文档的类型,以html的哪个版本进行编写指令。
二、文档声明的书写位置?
文档声明必须写在HTML根标签的前面,保证浏览器第一时间去获取网页的文档模式,进而解析渲染页面。
三、一个网页中不写文档声明或者格式写错了会怎么样?
会导致文档以混杂模式进行呈现。
四、标准模式和混杂模式分别是什么?
由于历史原因,在W3c没有出现之前,没有统一的网页标准,不同的浏览器对页面的渲染不同。在w3c标准出现后,
随着标准一致性越来越重要,浏览器开发商不得不面临一个艰难的抉择:逐渐遵循w3c的标准是前进的方向。但是改变现有的css,完全去遵循标准,会使许多旧网站或多或少的收到破坏,如果浏览器突然以正确的方式解析现存的css,陈旧的网站的显示必然会受到影响。所以,所有的浏览器都需要提供两种模式,混杂模式服务于旧世规则,严格模式服务于标准规则。
于是,为了解决这一问题,之后所有的浏览器都会支持两种模式,即标准模式和混杂模式。
标准模式:以浏览器支持的最高标准进行渲染。
混杂模式:以相对宽松的向后兼容的方式,模拟老式浏览器保证站点可以正常工作。
五、如何触发这两种模式呢?
触发混杂模式:
所有浏览器中都以省略文档开头的 doctype 声明作为混杂模式判断的标准。但这种约定并不合理,因为混杂模式在不同浏览器中的差异非常大。
另外,若doctype 声明 不正确,也会导致HTML和XHTML文档以混杂模式呈现。
触发标准模式:
// HTML 4.01 Strict:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
// XHTML 1.0 Strict: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> // HTML5: <!DOCTYPE html> 六、如何查看浏览器以何种方式渲染界面?浏览器提供了以标准、混杂模式渲染页面的能力之后,检测页面渲染模式成为一个必要的需求。该功能最初是由IE6提出的,目前已被各大浏览器所支持。HTML5 最终也把 compatMode 属性的实现标 准化了。
基于document.compatMode属性,判断浏览器当前处于什么渲染模式:
标准模式下,值为"CSS1Compat"
混杂模式下,值为"BackCompat"
//判断浏览器当前处于什么渲染模式
if (document.compatMode == "CSS1Compat"){
console.log("Standards mode");
} else {
console.log("Quirks mode");
}
注:该属性 IE浏览器 最低兼容到 IE6
标签:浏览器,混杂,渲染,知识,模式,标准,文档,声明 来源: https://www.cnblogs.com/yangpcsir/p/15400254.html