聊一聊CSS中的盒模型和box-sizing属性

一、盒模型

CSS 的盒模型描述了一个HTML元素所占据的空间。盒模型由元素的内容、内边距(padding)、边框(border)和外边距(margin)组成,如下图所示:

+---------------------------------------+
|              margin-top               |
|  +---------------------------------+  |
|  |            border-top           |  |
|  |  +---------------------------+  |  |
|  |  |          padding-top      |  |  |
|  |  |  +---------------------+  |  |  |
|  |  |  |        content      |  |  |  |
|  |  |  |                     |  |  |  |
|  |  |  |                     |  |  |  |
|  |  |  |                     |  |  |  |
|  |  |  |                     |  |  |  |
|  |  |  |                     |  |  |  |
|  |  |  +---------------------+  |  |  |
|  |  |         padding-bottom    |  |  |
|  |  +---------------------------+  |  |
|  |            border-bottom        |  |
|  +---------------------------------+  |
|              margin-bottom            |
+---------------------------------------+

 

其中,内容区域(content)指的是元素中实际包含的文本、图片或其他元素。内边距(padding)指的是内容区域和边框之间的空白区域,用于增加元素的内部空间或改变元素的外观。边框(border)指的是围绕内容和内边距的线条或样式,用于将元素与周围的元素或背景区分开来。外边距(margin)指的是元素与相邻元素之间的空白区域,用于控制元素之间的间距。

CSS 的盒模型在布局和样式设计中起着重要作用,可以通过设置盒模型的属性来控制元素的大小、位置和外观。常见的盒模型属性包括 width(宽度)、height(高度)、padding(内边距)、border(边框)、margin(外边距)等。

二、box-sizing 属性

在 CSS 中,盒模型的大小计算方式可以通过 box-sizing 属性来设置。box-sizing 属性有两个值:

  • content-box(默认值):表示元素的宽度和高度仅包括内容区域,不包括内边距、边框和外边距。也就是说,元素的宽度和高度值只是内容的大小,不包括内边距、边框和外边距。

  • border-box:表示元素的宽度和高度包括内容区域、内边距和边框,但不包括外边距。也就是说,元素的宽度和高度值是包括内边距、边框和内容的总和,而不是仅仅内容的大小。

盒模型的大小计算方式不同,会直接影响到元素的布局和样式设计。因此,在进行 CSS 布局和样式设计时,需要根据实际需要选择合适的盒模型计算方式,并且注意元素的内边距、边框和外边距对元素的大小和位置产生的影响。

示例代码:

<div class="box1"></div>
<div class="box2"></div>

 

/* 使用 content-box 计算元素的宽度和高度 */
.box1 {
  box-sizing: content-box;
  width: 100px;
  height: 100px;
  padding: 10px;
  border: 1px solid black;
  margin: 10px;
  background: red;
}

/* 使用 border-box 计算元素的宽度和高度 */
.box2 {
  box-sizing: border-box;
  width: 100px;
  height: 100px;
  padding: 10px;
  border: 1px solid black;
  margin: 10px;
  background: green;
}

在上面的示例代码中,第一段代码使用 content-box 计算元素的宽度和高度,因此元素的实际宽度和高度是 122px(100 + 2 * 10 + 2 * 1),而外边距则为 10px。第二段代码使用 border-box 计算元素的宽度和高度,因此元素的实际宽度和高度是 100px,而外边距则为 10px。

实际效果如下:

1、box1:

 

 2、box2:

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

忧郁的蛋~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值