📚前端面试题速记
Q2

说一下 CSS 盒子模型,以及标准情况和 IE 下的区别?

速记答案(30 秒)

标准盒模型:width 只是内容宽度,总宽度 = margin + border + padding + width。IE 传统盒模型:width 包含 padding + border。用 box-sizing: border-box 可切换到 IE 模式,实战中一般全局设置 * { box-sizing: border-box; }。

📖 详细讲解

标准面试回答(推荐记住)

CSS 盒模型包括 content、padding、border、margin 四个部分。标准盒模型中,width 和 height 只指内容区域的尺寸,总宽度要加上 padding 和 border。IE 传统盒模型中,width 包含了 padding 和 border,计算更直观。通过 box-sizing 属性可以切换:content-box 是标准盒模型,border-box 是 IE 盒模型。实战中通常全局设置 border-box,这样设置宽度就是最终宽度,不用再减去 padding 和 border。

盒模型示意

┌─────────────────────────────────┐
│             margin              │
│  ┌───────────────────────────┐  │
│  │          border           │  │
│  │  ┌─────────────────────┐  │  │
│  │  │       padding       │  │  │
│  │  │  ┌───────────────┐  │  │  │
│  │  │  │    content    │  │  │  │
│  │  │  │  width×height │  │  │  │
│  │  │  └───────────────┘  │  │  │
│  │  └─────────────────────┘  │  │
│  └───────────────────────────┘  │
└─────────────────────────────────┘

两种盒模型对比

模型 box-sizing 值 width 包含
标准 content-box 仅 content
IE border-box content + padding + border

面试要点

  • 理解四个层次:content → padding → border → margin
  • 知道 box-sizing 切换盒模型
  • 实战推荐全局 border-box

💻 代码示例

盒模型对比演示
🎨 效果预览