CSS 盒子模型

本文详细介绍了CSS盒子模型的各个组成部分,包括边框、内边距、外边距等,并讲解了如何实现元素的水平居中及解决垂直外边距塌陷等问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、盒子模型组成部分

CSS 盒子模型本质上是一个盒子,封装周围的 HTML 元素,它包括:边框、外边距、内边距和实际内容。

border 边框、content 内容、padding 内边距(调整盒子里面内容的距离)、margin
外边距(控制一个盒子与另外一个盒子的距离)

二、盒子模型边框

border 可以设置元素的边框,边框由三部分组成:粗细、样式、颜色。

属性: border-width 边框粗细、border-color 边框颜色、border-style 边框样式(solid
实线边框、dashed 虚线边框、dotted 点线边框)

/*分开写未免太繁琐,我们可以进行简写(没有顺序)*/
border: 1px solid red;
border-top:2px solid blue;

表格细线边框:

table,td {
border: 1px solid red;
/*合并相邻的边框*/
border-collapse: collapse; 
}

边框会影响盒子实际的大小,实际大小等于 div 内部空间加边框!

三、盒子模型内边距

padding 用于设置盒子的内边距,及当前盒子边框与内容的距离。

padding: 10px;
padding-left: 5px;

当然,为了书写方便,我们可以采用简写的方式去设置盒子的内边距:

在这里插入图片描述
有时无需设置盒子宽度,内边距会撑开盒子!

四、盒子模型的外边距

margin 属性用于设置外边距,即盒子与盒子之间的距离。
用法与内边距 padding 一样!

五、块级元素水平居中

外边距可以让块级元素水平居中,但是必须满足两个条件:
① 盒子必须指定了宽度;
② 盒子左右外边距都设置为 auto。

常见的写法有以下三种:
① margin-left:auto;margin-right:auto;
② margin:auto;
③ margin:0 auto;(最常用)

以上是让块级元素水平居中,对于行内元素或者行内块元素直接给其父元素添加 text-align:center 即可!

六、嵌套块元素垂直外边距塌陷

对于两个嵌套关系的块元素,父元素有上外边距的同时,子元素也有上外边距,此时父元素会塌陷较大的外边距值。

解决方法:
① 可以为父元素设置上边框;(边框透明,border: 1px solid transparent)
② 可以为父元素定义上内边距;
③ 可以为父元素添加 overflow:hidden。(常用)

还有其他方法,比如浮动、固定、绝对定位的盒子是不会有塌陷问题的,后面我们再总结!>_<

七、清除内外边距

* {
margin: 0;
padding: 0;
}

八、圆角边框

在 CSS3 中,新增了圆角边框样式,这样我们的盒子就可以设置成圆角了!
border-radius 属性用于设置元素的外边框圆角。

border-radius: 30px;

① 参数值可以是数值或者百分百的形式;
② 如果是正方形,想要设置为一个圆,把数值修改为高度或者宽度的一半即可,或者直接写为50%;
③ 如果是个矩形,参数值设置为高度的一半就可以做成一个标准的圆角矩形;
该属性是一个简写属性,可以跟四个值,分别代表左上、右上、右下、左下。

九、盒子阴影

语法:

box-shadow: h-shadow v-shadow blur spread color inset;

在这里插入图片描述

十、文字阴影

语法:

text-shadow: h-shadow v-shadow blur color;

在这里插入图片描述
好啦,本篇到此结束,拜咯伙计们!

### CSS 盒子模型详解 CSS盒子模型是网页设计和布局中的核心概念之一。它描述了HTML文档结构化的方式以及如何通过样式控制这些元素的空间分配。 #### 1. 盒子模型的组成部分 每个HTML元素都可以看作是一个矩形盒子,该盒子由以下几个部分组成[^1]: - **内容 (Content)**: 这是盒子的主要区域,用于放置文本或其他媒体内容。 - **内边距 (Padding)**: 它位于内容边缘与边框之间的空白区域,用来增加内容周围的可读空间。 - **边框 (Border)**: 边框围绕着内边距和内容,可以设置不同的宽度、颜色和风格来定义边界线。 - **外边距 (Margin)**: 外边距是在边框之外的一片透明区域,用于分隔相邻的盒子并防止它们相互接触。 #### 2. 盒子模型属性 以下是几个重要的盒子模型相关属性及其功能说明: ##### 2.1 `width` 和 `height` 属性 这两个属性分别设定盒子的内容区宽度和高度。需要注意的是,默认情况下,指定的尺寸仅适用于内容区域而不包括 padding, border 或 margin 的值[^2]。 ##### 2.2 `border` 边框属性 可以通过此属性自定义边界的外观,比如粗细、线条样式(实线、虚线等)以及颜色[^3]。 ##### 2.3 `padding` 内边距 用于调整内部填充量,即内容与其周围边框间的距离。它可以单独应用于上、右、下、左各个方向或者统一应用到所有侧面[^1]。 ##### 2.4 `margin` 外边距 负责管理与其他元素之间外部间距的部分。同样支持多向配置,并且当两个垂直 margins 邻近时会发生折叠现象——取两者较大者作为最终间隔[^2]。 ##### 2.5 盒子模型占位计算 总的实际占用面积等于 content area 加上其四周的所有附加层厚度之和。例如给定一个具有固定 width/height 值为100px 的 div 元素加上额外参数如下所示,则实际渲染出来的大小将是 `(100 + 5 + 5 + 20 + 20)` px × `(100 + 5 + 5 + 20 + 20)` px: ```css div { width: 100px; height: 100px; border: 5px solid black; /* 上下左右均为5像素 */ padding: 20px; /* 各侧均设为20像素 */ } ``` #### 3. box-sizing 属性 为了简化复杂布局的设计过程,引入了一个名为 `box-sizing` 的新特性。默认行为遵循传统标准模式 (`content-box`) ,其中声明的 dimensions 不含 paddings/borders;而另一种选项叫做 alternate model(`border-box`) 可让开发者更直观地操作整体尺寸因为此时所指代的就是整个可视范围内的确切数值. ```css /* 使用 border-box 来改变盒模型的行为方式*/ * { box-sizing: border-box; } ``` 以上便是关于CSS盒子模型的一些基本介绍及常见应用场景下的实现方法论探讨。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

栈老师不回家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值