初识盒模型

什么是盒模型

盒模型我理解为就是对页面中一个box的定义,这个定义氛围几个部分,从盒子外到内分为

  • 外边距margin
  • 边框border
  • 内边距padding
  • 主体内容content

应用MDN官方的描述

CSS 基础框盒模型是 CSS 规范的一个模块,它定义了一种长方形的盒子——包括它们各自的内边距(padding)与外边距(margin ),并根据视觉格式化模型来生成元素,对其进行布置、编排、布局(lay out)。常被直译为盒子模型、盒模型或框模型

这几层由外到内一层一层的包裹,chrome上经常能见到的一张图非常好理解:

盒模型

这个图完美的诠释了盒模型由那几个部分构成

两种盒模型

w3c和早期的IE定义了不同的盒模型,w3c定义的盒模型称为标准盒模型,ie定义的盒模型成为IE盒模型,他们都如上图一样定义了margin,border,padding和content几部分

区别

区别主要在于对盒子的width的定义,在标准盒模型中,盒子的width就等于content的width,比如我们为盒子设置了width为200px,所以这个盒子的总长应该是margin-left+ border-left + padding-left + width + padding-right + border-right + margin-right,举个例子

<style>
    div{
        width: 200px;
        margin: 20px;
        border: 5px solid red;
        padding: 20px;
    }
</style>
<body>
    <div></div>
</body>

这里我们为div设置的width为200px,但是最终我们看到的效果确实250px

标准盒模型

IE盒模型的不同之处就在于对于width定义,在这个盒模型中盒子的总宽度为margin-left + width + margin-right的宽度,这么一看就能理解了了,width = border-left + padding-left + content + padding-right + border-right

<style>
    div{
        width: 200px;
        margin: 20px;
        border: 5px solid red;
        padding: 20px;
        box-sizing: border-box;  
    }
</style>
<body>
    <div></div>
</body>

这里我们为div设置的width为200px,最终我们看到的效果确实也是200px

IE盒模型

box-sizing

在上述IE盒模型的样式中有注意到一个属性box-sizing, 这个属性定义了浏览器应该如何渲染这个box,如果值为border-box那么则以IE盒模型的定义来渲染,默认是以标准盒模型的定义来渲染

posted @ 2020-09-01 11:08  j植树  阅读(88)  评论(0编辑  收藏  举报