⚡介绍一下 css 盒模型

主要就是要对标准盒模型IE盒模型做一个区分


🚩W3c盒子和IE盒子的区别:

从图中我们可以看出,这两种盒子模型最主要的区别就是 width 的包含范围

W3c标准盒子模型中,width 指 content 部分的宽度,width = width

IE 盒子模型中,width 表示 content+padding+border 这三个部分的宽度,width = 左右 border + 左右 padding + width

在 CSS3 中引入了 box-sizing 属性

//表示标准的盒子模型
box-sizing:content-box;
//表示的是 IE 盒子模型
box-sizing:border-box ;

最后,前面我们还提到了,box-sizing:padding-box,这个属性值的宽度包含了左右 padding+width 也很好理解性记忆,包含什么,width 就从什么开始算起。

🌸简单的举个例子

题目:下图代码中,div和button按钮,除了背景色之外,其他样式都相同:为什么div和button按钮的大小有差别?

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      div {
        width: 100px;
        height: 30px;
        background: rgb(20, 109, 252);
        padding: 10px;
        border: 5px solid #ccc;
      }
      button {
        width: 100px;
        height: 30px;
        background: rgb(250, 226, 9);
        padding: 10px;
        border: 5px solid #ccc;
      }
    </style>
  </head>
  <body>
    <div></div>
    <button></button>
  </body>
</html>

运行结果:

image
​ 是因为div和button标签默认的盒模型不一样。div标签默认情况下是按照“W3C的标准盒模型”来计算的,而button按钮默认是按照“ie盒模型”来计算的。

可以通过:

//转变成IE盒子
box-sizing :content-box
//转变成W3C盒子
box-sizing :border-box

图片来源:[CSS基础(三):w3c盒子模型和ie盒子模型_xuehu837769474的博客-CSDN博客](