当前位置: 首页 > Web前端 > CSS

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

时间:2023-03-30 22:26:03 CSS

从IE6开始引入了Standards模式。在标准模式下,浏览器会尝试在浏览器指定的范围内正确处理符合标准的文档。CSS在IE6之前还不够成熟,所以IE5等之前的浏览器对CSS的支持很差,IE6对CSS的支持会更好,但是问题来了,因为很多页面都是基于旧的布局方式,如果IE6支持的话CSS,这些页面不会正常显示,如何保证现有页面不被破坏,并提供新的渲染机制?我们在写程序的时候经常会遇到这样的问题,如何保证原有的界面不变,提供更强大的功能,尤其是新功能与旧功能不兼容的时候。遇到这种问题的一个常见做法是加参数和分支,即当某个参数为真时,我们使用新函数,如果这个参数不为真,则使用旧函数,这样我们就可以既不打破原有程序,又提供新功能。IE6也有类似的做法。它将DTD(DocumentTypeDefinition)视为这个“参数”,因为之前的页面都不会有人写DTD,所以IE6假设DTD英文是*DocumentTypeDefinition,中文意思是“DocumentClassDefinition”。如果写了DTD,就意味着这个页面会采用对CSS支持较好的布局,如果没有,就采用兼容上一个的布局。这就是Quirks模式(怪癖模式,怪异模式,怪异模式)。它们的区别:在严格模式下:设置元素的宽度=内容;在quirks模式下:设置元素的宽度=content+padding+border可以设置内联元素的高度和宽度在Standards模式下,设置内联元素如span设置wdith和height不会生效。在怪癖模式下,它将生效。您可以设置百分比高度。在标准模式下,元素的高度由其内容决定。如果父元素没有设置高度,给子元素设置百分比高度是无效的。使用margin:0auto设置水平居中在IE下会失效。在标准模式下使用margin:0auto使元素水平居中,但在quirks模式下会失败;quirk模式下的解决方法是使用text-align属性:body{text-align:center};#content{text-align:left}在quirk模式下,设置图片的padding会失效。quirk模式下,Table中的字体属性不能继承上层的设置。在quirk模式下,white-space:pre将无效。