标准模式(严格模式)和怪异模式相关问题总结

标准模式和怪异模式的来由

在HTML与CSS的标准化未完成之前,各个浏览器对于HTML和CSS的解析有各自不同的实现,而有很多旧的网页都是按照这些非标准的实现去设计的。

在HTML与CSS标准确定之后,浏览器一方面要按照标准去实现对HTML与CSS的支持,另一方面又要保证对非标准的旧网页设计的后向兼容性。

因此,现代的浏览器一般都有两种渲染模式:标准模式怪异模式

标准模式下,浏览器按照HTML与CSS标准对文档进行解析和渲染;而在怪异模式下,浏览器则按照旧有的非标准的实现方式对文档进行解析和渲染。

这样的话,对于旧有的网页,浏览器启动怪异模式,就能够使得旧网页正常显示;对于新的网页,则可以启动标准模式,使得新网页能够使用HTML与CSS的标准特性。

浏览器如何确定使用哪种渲染模式

平常编写网页的时候,一般都会见到HTML文档的头部会有文档类型声明:DOCTYPE。(DTD声明)

当浏览器遇到正确的文档声明时,浏览器就会启动标准模式:浏览器按W3C标准解析执行代码;

而对于旧有的网页,由于网页编写的当时标准还没有确定,所以一般是不会有文档类型声明的。

所以,对于没有文档类型声明或者文档类型声明不正确的文档,浏览器就会认为它是一个旧的HTML文档:

使用浏览器自己的方式解析执行代码,因为不同浏览器解析执行的方式不一样,所以称之为怪异模式 --- 使用怪异模式解析和渲染该文档。

标准模式与怪异模式的常见区别

  • 盒模型的处理差异:在怪异模式下,盒模型为IE模型 ;标准模式下为W3C标准的盒模型
  • 图片元素的垂直对齐方式

    对于inline元素和table-cell元素,标准模式下vertical-align属性默认取值是baseline;在怪异模式下,table单元格中的图片的vertical-align属性默认取值是bottom。因此在图片底部会有及像素的空间。

  • 元素中的字体

    CSS中,对于font的属性都是可以继承的。怪异模式下,对于table元素,字体的某些元素将不会从body等其他封装元素继承中的得到,特别是font-size属性。
  • 内联元素的尺寸

标准模式下,non-replaced inline元素无法自定义大写;

怪异模式下,定义这些元素的width、height属性可以影响这些元素显示的尺寸。

  • 元素的百分比高度

    CSS中对于元素的百分比高度规定:百分比为元素包含块的高度,不可为负值;如果包含块的高度没有显示给出,该值等同于auto,所以百分比的高度必须是在元素有高度声明的情况下使用。
    当一个元素使用百分比高度是,标准模式下,高度取决于内容变化,怪异模式下,百分比高度被准确应用

  • 元素溢出的处理

    标准模式下,overflow取值默认为visible;在怪异模式在,该溢出会被当做扩展box来对待,即元素的大小由内容决定,溢出不会裁剪,元素框自动调整,包含溢出内容。

参考:

https://www.jianshu.com/p/dcab7cde8c04

https://blog.csdn.net/qq_31059475/article/details/78010601

原文地址:https://www.cnblogs.com/amcy/p/9795168.html

时间: 2024-07-30 21:19:42

标准模式(严格模式)和怪异模式相关问题总结的相关文章

浏览器的标准模式和怪异模式的区别

所谓的标准模式是指,浏览器按W3C标准解析执行代码:怪异模式则是使用浏览器自己的方式解析执行代码,因为不同浏览器解析执行的方式不一样,所以我们称之为怪异模式.浏览器解析时到底使用标准模式还是怪异模式,与你网页中的DTD声明直接相关,DTD声明定义了标准文档的类型(标准模式解析)文档类型,会使浏览器使用相应的方式加载网页并显示,忽略DTD声明,将使网页进入怪异模式(quirks mode).

浏览器标准模式与怪异模式的区别

两种模式的不同主要表现在盒模型和渲染模式的不同上 要想写出跨浏览器的CSS,必须知道浏览器解析CSS的两种模式:标准模式(strict mode)和怪异模式(quirks mode) 所谓的标准模式是指,浏览器按W3C标准解析执行代码:怪异模式则是使用浏览器自己的方式解析执行代码,因为不同浏览器解析执行的方式不一样,所以我们称之为怪异模式.浏览器解析时到底使用标准模式还是怪异模式,与你网页中的DTD声明直接相关,DTD声明定义了标准文档的类型(标准模式解析)文档类型,会使浏览器使用相应的方式加载

浏览器的标准模式和怪异模式

要想写出跨浏览器的CSS,必须知道浏览器解析CSS的两种模式:标准模式(strict mode)和怪异模式(quirks mode). 标准模式: 浏览器按W3C标准解析执行代码: 怪异模式: 使用浏览器自己的方式解析执行代码,因为不同浏览器解析执行的方式不一样,所以我们称之为怪异模式. 浏览器解析时到底使用标准模式还是怪异模式,与你网页中的DTD声明直接相关. DTD声明定义了标准文档的类型(标准模式解析)文档类型,会使浏览器使用相应的方式加载网页并显示: 忽略DTD声明,将使网页进入怪异模式

浏览器标准模式和怪异模式之间的区别

浏览器标准模式和怪异模式之间的区别是什么 所谓的标准模式是指,浏览器按W3C标准解析执行代码:怪异模式则是使用浏览器自己的方式解析执行代码,因为不同浏览器解析执行的方式不一样,所以我们称之为怪异模式.浏览器解析时到底使用标准模式还是怪异模式,与你网页中的DTD声明直接相关,DTD声明定义了标准文档的类型(标准模式解析)文档类型,会使浏览器使用相应的方式加载网页并显示,忽略DTD声明,将使网页进入怪异模式(quirks mode).

怪异模式和标准模式

由于历史的原因,各个浏览器在对页面的渲染上存在差异,甚至同一浏览器在不同版本中,对页面的渲染也不同.在W3C标准出台以前,浏览器在对页面的渲染上没有统一规范,产生了差异(Quirks mode或者称为Compatibility Mode):由于W3C标准的推出,浏览器渲染页面有了统一的标准(CSScompat或称为Strict mode也有叫做Standars mode),这就是二者最简单的区别.W3C标准推出以后,浏览器都开始采纳新标准,但存在一个问题就是如何保证旧的网页还能继续浏览,在标准出

浅谈浏览器标准模式与怪异模式、文档类型

在网页设计制作过程中,新人往往会遇到一个问题,就是浏览器的不兼容问题.这种状况在大学学习过程中会经常遇到,但一直也没有得到很好的解决,今天有机会仔细研究了一下,这是有关浏览器标准模式与怪异模式之间的问题.标准模式(strict mode)和怪异模式(quirks mode)是浏览器解析css的两种模式.标准模式是指浏览器按W3C标准解析执行代码:怪异模式则是使用浏览器自己的方式解析执行代码,因为不同浏览器解析执行的方式不一样,所以我们称之为怪异模式. 浏览器解析时使用测是标准模式还是怪异模式,与

浏览器 怪异模式(Quirks Mode) 与 标准模式(Standards Mode)

怪异模式,浏览器使用自己的方式解析渲染页面,在不同的浏览器就会显示不同的样式.标准模式,浏览器使用W3C的标准解析渲染页面. 通过 document.compatMode 的值可以知道当前用的是什么模式.BackCompat:怪异模式CSS1Compat:标准模式 IE 6 for Windows/mac, Mozilla, Safari和Opera 都实现了这两种模式,但是IE 6以下版本永远定在了怪异模式.没有指定dtd将会开启浏览器的怪异模式,这种说法是错的!正确的说法应该是没有定义doc

文档的滚动条、标准怪异模式、视口尺寸

滚动条距离 window.pageXOffset | window.pageYOffset (IE8 集iE8 以下不兼容) ** 下面两组都是IE8 的解决方法 但是由于兼容性混乱 两种方法 俩组方法互斥,有一组方法有值的话另一组则为0 ** ** 解决方法将两个值相加就可以解决问题 ** document.body.scrollLeft | document.body.scrollTop document.documentElement.scrollTop | document.docume

CSS盒模型全面讲解,怪异模式盒模型

当你用编辑器新建一个html页面的时候你一定会发现最顶上都会有一个DOCTYPE标签,例如: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www