Skip to content

标准盒模型与怪异盒模型的区别

前言

盒模型本质上是一个盒子,封装周围的 HTML 元素,它包括:边距,边框,填充,和实际内容。它允许我们在其它元素和周围元素边框之间的空间放置元素。 目前盒模型主要分为两大门派:标准盒模型和怪异盒模型。其中早期的怪异盒模型是存在于 IE 内核浏览器。

一、标准盒模型

标准盒模型又称 W3C 标准盒模型,其中标准盒模型的 width 等于 content 的宽度,标准盒模型的 height 等于 content 的高度。 标准盒大小计算公式:width(content) + padding + border + margin

在这里插入图片描述

二、怪异盒模型

怪异盒模型又称 IE 盒子模型,其中怪异盒子模型的 width 等于 content + padding + border 的宽度,怪异盒子模型的 height 等于 content + padding + border 的高度。 怪异盒大小的计算公式:width(content + padding + border) + margin

在这里插入图片描述

三、css 样式

在 css3 中添加了对盒模型设置的属性 box-sizing,可以根据需要自由调整。浏览器支持:IE8+

float 常用属性值:

属性值描述
content-box默认值,盒子宽度高度等于 content(标准盒模型)。
border-box盒子宽度高度等于 content + padding + border(怪异盒模型)。
padding-box盒子宽度高度等于 content + padding。
inherit从父元素中继承 box-sizing 属性的值。

四、测试代码

html
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Document</title>
    <style>
      .box {
        margin: 30px;
        padding: 20px;
        width: 80px;
        height: 40px;
        border: 10px solid #00007e;
        background: #fec997;
        box-sizing: border-box; /* 设置盒子类型 */
      }
    </style>
  </head>
  <body>
    <div class="box"></div>
  </body>
</html>

总结

最后,IE 浏览器中使用怪异盒子模型的是 IE5.5 及更早的版本,使用标准盒模型的是 IE6 及更新的版本,并且在编写 html 文件的时候应该设置 !DOCTYPE 声明,这样可以让 IE 浏览器遵循标准的兼容模式渲染。

最后,如果您有更好的方式,欢迎在留言区中分享;或者实际操作中遇到什么问题均可留言或者私信我,

Released under the MIT License.