news 2026/11/2 1:57:03

css盒子模型讲解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
css盒子模型讲解

一、盒子模型解决什么问题

  1. 控制盒子内容大小、内边距、边框、外边距
  2. 区分:元素本身占多大空间、它和别的盒子之间留多大空隙
  3. 解决尺寸计算混乱的痛点(标准盒 / IE 怪异盒两种计算规则)
  4. 实现元素之间拉开距离、加边框、背景留白、模块排版

盒子四层结构(从里往外):

  • content:内容区域,放文字、图片、子盒子
  • padding:内边距 → 内容和边框之间的距离(在盒子内部,背景会延伸到 padding)
  • border:边框线
  • margin:外边距 → 当前盒子和别的盒子之间的距离(盒子外面,透明,不会带背景)
margin(外边距,外面空白) border(边框) padding(内边距,内部留白) content(内容)

二、两种盒子模型(重点!box-sizing)

1. 标准盒模型(默认:box-sizing: content-box)

✅ 宽度计算公式:盒子实际宽度 = width (内容宽) + padding 左右 + border 左右

你设置 width,只是内容区的宽;padding 和边框会把盒子撑大!

.box{ width:200px; padding:10px; border:2px solid #000; box-sizing: content-box; } /* 真实宽 = 200 + 10*2 + 2*2 = 224px */

2. IE 盒模型 / 怪异盒模型(推荐写:box-sizing: border-box)

✅ 宽度计算公式:盒子实际宽度 = width(包含 content + padding + border)

设置的 width 就是你肉眼看到盒子总宽,padding、边框向内挤压内容,不会撑大盒子!

.box{ width:200px; padding:10px; border:2px solid #000; box-sizing: border-box; } /* 盒子整体宽严格就是200px,不用自己算加法 */

👉 开发几乎全部用 border-box,布局不容易乱!一般全局直接统一设置:

* { margin: 0; padding: 0; box-sizing: border-box; }

三、四个属性怎么使用(单位统一 px)

1. padding 内边距(内容 ↔ 边框)

写法(上 右 下 左,顺时针)

padding: 10px; /* 四个方向都是10px */ padding: 10px 20px; /* 上下10px,左右20px */ padding: 10px 20px 5px;/* 上10,左右20,下5 */ padding:10px 20px 30px 40px; /* 上、右、下、左 */ /* 单独写某一边 */ padding-top: 10px; padding-left: 15px;

⚠️ 行内元素(span)上下 padding 不会推开上下元素,左右正常生效。

2. border 边框

/* 粗细 样式 颜色 */ border: 2px solid #333; /* 单边边框 */ border-bottom:1px solid #ccc;

3. margin 外边距(盒子和隔壁盒子的距离)

写法和 padding 一模一样

margin: 20px auto; /* auto 专门用来水平居中块级盒子!前提:有width */

⚠️ margin 经典坑:垂直 margin 塌陷(合并)两个上下挨着的块盒子,上面 margin-bottom:20px,下面 margin-top:20px,最终空隙不是 40px,而是取大的 20px。 水平 margin 不会塌陷。

四、适用场景

  1. 页面初始化重置:清除浏览器自带默认 margin、padding(* 选择器重置)
  2. 模块内部留白:卡片、按钮里面文字离边框远一点 → 用 padding
  3. 模块之间拉开间距:两个卡片、两个 div 之间留白 → 用 margin
  4. 给元素加边框、分割线:border
  5. 固定尺寸组件(按钮、输入框、卡片):border-box,改 padding 不撑大盒子
  6. 块级盒子水平居中:margin: 0 auto;
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/2 1:56:56

马斯克脑机接口最狠升级,Grok接入大脑,意念可操控AI了

2小时封神实录,「脑机接口」最狠升级 科幻片黑客帝国、超验骇客里的桥段,正被马斯克一点点搬进现实。 今天,Neuralink甩出了一项最新进展,属实有点震撼—— 这一次,马斯克这次直接把SpaceXSI的Grok,直接…

作者头像 李华
网站建设 2026/11/2 1:56:20

Linux gdb 命令详解:从安装到基础命令讲解

Linux 命令大全 GDB(GNU Debugger)是 Linux 系统下最常用的程序调试工具,它可以帮助开发者: 跟踪程序执行流程设置断点暂停程序运行查看和修改变量值分析程序崩溃原因检查函数调用栈 GDB 支持多种编程语言,包括 C、C…

作者头像 李华
网站建设 2026/11/2 1:55:32

第 8 集:ConcurrentHashMap 是线程安全的,计数为什么还会丢?

资深 Java 面试到 Agent 开发工程师 第 8 集 多个线程共同修改一个 Map 时,我们通常会想到 ConcurrentHashMap。它是线程安全的,但下面这次“加一”仍可能算错: int old map.get("count"); map.put("count", old 1)…

作者头像 李华
网站建设 2026/11/2 1:55:17

IPC 进程间通信:无名管道与有名管道详解

1. 为什么需要 IPC 每个进程都有自己独立的虚拟地址空间,一个进程无法直接访问另一个进程的内存。但实际开发中,进程之间经常需要共享数据或交换信息,例如: 父进程把任务分发给子进程,子进程把结果回传给父进程&#x…

作者头像 李华
网站建设 2026/11/2 1:54:45

把数据 “装进柜子“:Python 四大容器一次讲透,再也不纠结该用哪种

前面咱们学了变量 —— 但一个变量只能装一个值。真实程序里数据是一堆一堆的:一筐学生的成绩、一本通讯录、一批订单…… 这时候就需要容器(Container)把数据装起来。Python 有四种主力容器:列表 list、元组 tuple、字典 dict、集…

作者头像 李华
网站建设 2026/11/2 1:54:45

国央企班车采购:合规审计与集团多级管理

国央企班车采购:合规审计与集团多级管理 深圳建科院的后勤负责人说过一句话:「建科院曾花费不少时间和精力去寻找市面上能够满足需求的用车供应商,直至找到嘟嘟巴士,才顺利解决所有用车问题。」 听着像客套。放在国企语境里不是。…

作者头像 李华