开发者社区> 问答> 正文

Quirks(怪癖)模式是什么?它和Standards(Standard)模式有什么区别

Quirks(怪癖)模式是什么?它和Standards(Standard)模式有什么区别

展开
收起
茶什i 2019-11-18 11:47:28 3200 0
1 条回答
写回答
取消 提交回答
  • 1以ie6至少,如果写了DTD,就意味着这个页面将采用对CSS支持更好的布局,而如果没有,则采用兼容之前的布局方式。这就是Quirks模式(怪癖模式,诡异模式,怪异模式)。

    2区别:总体会有布局,样式解析和脚本执行三个方面的区别。

    设置一个元素的宽度和高度

    给等行内元素设置width和height

    用margin:0 auto设置水平居中

    从IE6开始,修订了标准模式,标准模式中,浏览器尝试给符合标准的文档在规范上的正确处理达到指定的浏览器中的程度。

    在IE6之前CSS还不够成熟,所以IE5等之前的浏览器对CSS的支持很差,IE6将对CSS提供更好的支持,而这时的问题就来了,因为有很多页面是基于旧的布局方式写的,而如果IE6支持CSS则将令这些页面显示不正常,如何在即保证不破坏现有页面,又提供新的渲染机制呢?

    在写程序时我们也会经常遇到这样的问题,如何保证原来的接口不变,又提供更强大的功能,尤其是新功能不兼容旧功能时。遇到这种问题时的一个常见做法是IE6,增加参数和分支,即当某个参数为真时,我们就使用新功能,而如果这个参数不为真时,就使用旧功能,这样就能不破坏破坏的程序,又提供新功能。也是类似这么做的,因此DTD(文档类型定义)当成了这个“参数”,因为以前的页面大家都不会去写DTD,所以IE6就可以如果写了DTD,就意味着这个页面将采用对CSS支持更好的布局,而如果没有,则采用兼容之前的布局方式。这就是Quirks模式(怪癖模式,诡异模式,怪异模式)。

    区别:

    总体会有布局,样式解析和脚本执行三个方面的区别。

    盒模型:在W3C标准中,如果设置一个元素的宽度和高度,指的是元素内容的宽度和高度,而在Quirks模式下,IE的宽度和高度还包含填充和边框。

    设置行内元素的高宽:在标准模式下,给等行内元素设置wdith和height都不会生效,而在quirks模式下,可以实现。

    设置百分比的高度:在标准模式下,一个元素的高度是由其包含的内容来决定的,如果父元素没有设置百分比的高度,子元素设置一个百分比的高度是无效的

    用margin:0 auto设置水平居中:使用margin:0 auto在标准模式下可以使元素水平居中,但在quirks模式下却会失效。

    (还有很多,答出什么不重要,关键是看他答出的这些是不是自己经验遇到的,还是说都是看文章看的,甚至完全不知道。)

    2019-11-18 11:48:14
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
FlowFuzz-A-Framework-For-Fuzzing-OpenFlow-Enabled-Software-And-Hardware-Switches 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载