CSS之盒模型

盒模型概念

浏览器盒模型(Box Model)是CSS中的基本概念,它描述了元素在布局过程中如何占据空间。盒模型由内容(content)、内边距(padding)、边框(border)、和外边距(margin)四个部分组成。分为标准盒模型 和 IE盒模型 。

  • 标准盒模型(W3C盒模型):在这个模型中,元素的总宽度等于左右margin + 左右border + 左右padding + width,总高度等同于上下margin + 上下border + 上下padding + height的和。

    盒宽度=内容宽度(content)+ border + padding + margin

  • IE盒模型:在这个模型中,宽度和高度不仅包括内容的尺寸,还包括内边距和边框。这意味着,元素的实际宽度等于width(内容宽度 + 左右内边距 + 左右边框),高度同理。

    盒宽度=内容宽度(content+border+padding)+ margin

盒模型设置

通过CSS的box-sizing属性,可以在标准盒模型与IE盒模型之间进行切换。
  • content-box(默认值):应用标准盒模型,元素的宽度和高度只包括内容区域。
  • border-box:应用IE盒模型,元素的宽度和高度还包括内边距和边框。

举个例子

css代码示例

复制代码
 <body>
    <div class="content-box base-box"></div>
    <div class="border-box base-box"></div>
  </body>
  <style>
    .base-box {
      width: 100px;
      height: 100px;
      padding: 10px;
      border: 2px solid red;
      margin: 5px;
    }

    .content-box {
      box-sizing: content-box;
    }

    .border-box {
      box-sizing: border-box;
    }
  </style>

渲染示例


设置为content-box时,元素宽度:100 + 10 x 2 + 2 x 2 = 124;设置为100最终是124。

设置为border-box时,元素宽度:76 + 10 x 2 + 2 x 2 = 100;设置为100就是100。

相关推荐
光影少年2 分钟前
react navite实现全局弹窗、Toast 组件
前端·react native·react.js
WebInfra6 分钟前
Rslib 1.0 正式发布:面向多场景的 JavaScript 库开发工具
前端·javascript·github
Tongsr38 分钟前
别只混淆代码:用 Kaleido 加固整个 Android Release AAB
前端·算法·github
郭邯43 分钟前
从零到一:我用 AI 写了一个贷款计算器,顺便把等额本息公式彻底搞懂了
前端
汉堡大王95271 小时前
面试官:讲讲归并排序 —— 为什么它能在面试里反复出现?
前端·javascript·面试
kyriewen1 小时前
别再只给人写页面了:AI 已经开始自己点你的按钮、填你的表单
前端·javascript·人工智能
天天喝旺仔1 小时前
Vue 3 组合式 API:从 Options 迁移到 script setup
前端·javascript·vue.js
知了清语1 小时前
以测试为盾,重构为矛——老旧前端系统迭代中的“测试先行”实践总结
前端
攀小黑2 小时前
vue3+Web Speech API 封装了一个弹窗语音输入
前端·macos·xcode
roamingcode2 小时前
4.5 小时,从一句话需求到可安装的 Chrome 插件:一次 AI 结对开发的完整复盘
前端·人工智能·chrome·claude·codex