前端基础——4、深入理解 CSS 盒子模型:从基础到多值写法
一、盒子模型
以下是给一个div添加son1类样式后在调试工具中看到的各个属性。
.son1{
width: 100px;
height: 100px;
padding:0px 10px 20px 30px;
margin: 30px 20px 10px 0px;
background-color: #456bff;
border-top: 10px groove #000;
border-right: 15px ridge #b70c0c;
border-bottom: 20px inset #b3aa0d;
border-left: 25px outset #e66465;
}
什么是 CSS 盒子模型?
CSS 盒子模型(Box Model)是网页布局的核心概念,它将 HTML 元素视为一个矩形的“盒子”,由以下四部分组成:
- Content(内容):元素的实际内容(如文本、图片)
- Padding(内边距):内容与边框之间的透明区域
- Border(边框):包裹内容和内边距的线条
- Margin(外边距):盒子与其他元素之间的透明间距
盒子模型的组成部分详解
1. Content(内容)
- 通过
width
和height
属性控制尺寸 - 默认背景色为透明
div {
width: 300px;
height: 200px;
}
2. Padding(内边距)
- 使用
padding
属性设置 - 支持多值写法实现方向控制
/* 四值写法:上 右 下 左 */
padding: 10px 20px 30px 40px;
/* 三值写法:上 左右 下 */
padding: 10px 20px 30px;
/* 两值写法:上下 左右 */
padding: 10px 20px;
/* 单值写法:统一所有方向 */
padding: 15px;
3. Border(边框)
- 包含
border-width
,border-style
,border-color
三个属性 - 支持组合简写和方向控制
/* 完整简写 */
border: 3px solid #ff6b6b;
/* 多值方向控制 */
border-style: dotted double dashed solid; /* 上 右 下 左 */
border-width: 2px 4px 6px 8px;
4. Margin(外边距)
- 用法与
padding
类似,但用于外部间距 - 支持负值和
auto
居中
/* 上下 20px,左右自动居中 */
margin: 20px auto;
/* 单独设置底部外边距 */
margin-bottom: -15px;
多值写法的规律总结
值的数量 | 示例 | 对应方向顺序 |
---|---|---|
4 个值 | 10px 20px 30px 40px |
上 → 右 → 下 → 左 |
3 个值 | 10px 20px 30px |
上 → 左右 → 下 |
2 个值 | 10px 20px |
上下 → 左右 |
1 个值 | 10px |
所有方向统一 |
盒子模型的计算方式
通过 box-sizing
属性控制尺寸计算规则:
1. content-box
(默认)
- 总宽度 =
width
+padding
+border
+margin
- 元素容易超出容器
div {
box-sizing: content-box;
width: 200px;
padding: 20px;
border: 5px solid #4ecdc4;
/* 实际占用宽度:200 + 20*2 + 5*2 = 250px */
}
2. border-box
- 总宽度 =
width
(包含 padding 和 border) +margin
- 更符合直觉的布局方式
div {
box-sizing: border-box;
width: 200px;
padding: 20px;
border: 5px solid #4ecdc4;
/* 实际内容宽度:200 - 20*2 - 5*2 = 150px */
}
实战示例:创建卡片组件
.card {
/* 内容区域 */
width: 300px;
min-height: 200px;
/* 内边距 */
padding: 20px 15px;
/* 边框 */
border: 2px solid #ffe66d;
border-radius: 8px;
/* 外边距 */
margin: 30px auto;
/* 阴影效果 */
box-shadow: 0 4px 6px rgba(0,0,0,0.1);
/* 确保尺寸计算包含边框 */
box-sizing: border-box;
}
注意事项
- 外边距折叠:垂直方向上相邻元素的外边距会合并
- 百分比单位:padding/margin 的百分比值相对于父容器的宽度
- 浏览器差异:某些旧版浏览器可能需要
-moz-box-sizing
等前缀
总结
掌握盒子模型是 CSS 布局的基石,通过:
✅ 理解 content/padding/border/margin 的层级关系
✅ 熟练使用多值写法精确控制各方向
✅ 合理选择 box-sizing
的计算模式
可以轻松实现精准的页面布局效果。现在就去动手实践吧!
建议配合浏览器开发者工具使用,实时调试盒子模型参数! 🚀