标准模式和混杂模式

不念不忘少年蓝@ 2022-07-15 12:48 310阅读 0赞

那么,问题来了,什么情况下页面会处于混杂模式呢?下面是列出的几种:

(1)不写<!DOCTYPE html>
(2)<!DOCTYPE html>前面加上xml声明 <?xml version=”1.0” encoding=”utf-8”?> (IE6)
(3)<!DOCTYPE html>和<?xml version=”1.0” encoding=”utf-8”?>之间加了(标签、文本、注释)(ie8以下都有,ie9以上未测)
(4)<!DOCTYPE html>前面有(标签、文本、注释)(ie8以下都有,ie9以上未测)

1和4是比较常见的,可能还有其他情况,还没有遇到过具体的例子。。。我曾经在一篇文章看到说页面结构错误也会引发混杂模式,不知道是怎么个错误法。

混杂模型和严格模型的区别

1.盒模型的解析,混杂模式会按照IE5.5的盒模型解析。而标准模式是按标准的盒模型解析

222256365456906.png

2当一个块状元素div/单元格包含的内容只有图片时,在标准模式下,不管是IE还是标准模式,在图片底部都有3像素的空白,但是在混杂模式下

标准浏览器(CHROM)中div距图片底部默认没有空白

  1. <style>
  2. .wp{
  3. background-color: #f00}
  4. </style>
  5. <body >
  6. <div class="wp">
  7. <img src="test01.png">
  8. </div>
  9. </body>

011804450504603.png 011806338155608.png

3.在混杂模式下,变格中的字体不会继承它祖先元素(比如body 比如包含table的div)的字体样式

  1. <style>
  2. .wp{
  3. font-size: 48px;}
  4. </style>
  5. <body >
  6. <div class="wp">
  7. <table><tr><td>我是48号字</td></tr></table>
  8. </div>
  9. </body>

011919445501914.png

5.在IE的混杂模式下给inline元素设定高度和宽度都有效

  1. <style>
  2. .inline{
  3. width: 400px;height: 200px;background-color: #edd;}
  4. </style>
  5. <body >
  6. <span class="inline">我是一个span元素</span>
  7. </body>

011822215507703.jpg

6、在混杂模式下,IE和其他浏览器对百分比宽度的解析是不一样的。如果父级是行内块或者浮动或者有定位的元素,给子元素设置百分比宽度100%时,IE的混杂会以父级的100%算(父级没有设置宽度,再往上一层),而标准浏览器是取决于内容的宽度

复制代码

  1. <style>
  2. .wp{
  3. float: left;
  4. /* display: inline-block;
  5. position: absolute;
  6. position: relative;
  7. position: fixed;*/
  8. }
  9. .box{
  10. width: 100%;background-color: #edd;}
  11. </style>
  12. <body >
  13. <div style="width:500px;">
  14. <div class="wp">
  15. <div class="box">
  16. 123
  17. </div>
  18. </div>
  19. </div>
  20. </body>

复制代码

011835408155823.png

7、在混杂模式下,当我们给一个元素设百分比高度,其他浏览器(正常,inline高度无变化,inline-block和block都会按百分比),而IE是自适应到内容高度。

复制代码

  1. <style>
  2. .wp{
  3. display: inline-block;}
  4. .box{
  5. height: 100%;background-color: #edd;}
  6. </style>
  7. <body >
  8. <div style="height:200px;">
  9. <span class="wp">
  10. <div class="box">
  11. 123
  12. </div>
  13. </span>
  14. </div>
  15. </body>

复制代码

011929446756339.png

8、overflow溢出默认值的问题。标准模式下,溢出元素是溢出可见的,超出部分的内容呈现在它的包含元素外。在混杂模式下,IE浏览器的溢出元素会自适应内容的尺寸。

复制代码

  1. <style>
  2. .wp{
  3. height: 100px;width:200px;background-color: #dee}
  4. </style>
  5. <body >
  6. <div class="wp">
  7. 123 123 123 123 123 123 123 123 123
  8. 123 123 123 123 123 123 123 123 123
  9. 123 123 123 123 123 123 123 123 123
  10. 123 123 123 123 123 123 123 123 123
  11. 123 123 123 123 123 123 123 123 123
  12. 123 123 123 123 123 123 123 123 123
  13. 123 123 123 123 123 123 123 123 123
  14. 123 123 123 123 123 123 123 123 123
  15. </div>
  16. </body>

复制代码

011937341753504.png

发表评论

表情:
评论列表 (有 0 条评论,310人围观)

还没有评论,来说两句吧...

相关阅读

    相关 严格模式混杂模式

    如何区分严格模式与混杂模式,它们有何意义! 严格模式:又称标准模式,是指浏览器按照 W3C 标准解析代码。 混杂模式:又称怪异模式或兼容模式,是指浏览器用自己的方式解析

    相关 混杂模式介绍

    一 混杂模式基本概念 一般情况下,网卡往往只会接收目的地址是它的数据包而不会接收目的地址不是它的数据包。 混杂模式就是接收所有经过网卡的数据包,包括不是发给本机的包。默认情