CSS box-sizing 属性详解(css中box属性有哪些)

yumo6668小时前技术文章2

box-sizing 是 CSS 的一个非常重要的属性。

CSS 的 box-sizing 属性用于控制元素尺寸的计算方式,决定了元素的宽度( width )和高度( height )是否包含内边距( padding )和边框( border )。这是 CSS 盒子模型的核心概念之一。

两种主要的值:

1. content-box (默认值)

  • 宽度和高度仅包含内容区域
  • 添加 padding border 增加元素的总尺寸
  • 计算公式:

总宽度 = width + padding-left + padding-right + border-left + border-right

总高度 = height + padding-top + padding-bottom + border-top + border-bottom

示例:

.box {

width: 200px;

padding: 20px;

border: 5px solid black;

box-sizing: content-box; /* 默认值 */

}

  • 实际总宽度 = 200px (内容宽) + 20px×2 (内边距) + 5px×2 (边框) = 250px

2. border-box (推荐值)

  • 宽度和高度包含内容、内边距和边框
  • 添加 padding border 挤压内容区域,但元素总尺寸不变。
  • 计算公式:

内容宽度 = width - padding-left - padding-right - border-left - border-right

内容高度 = height - padding-top - padding-bottom - border-top - border-bottom

示例:

.box {

width: 200px;

padding: 20px;

border: 5px solid black;

box-sizing: border-box; /* 推荐值 */

}

  • 实际总宽度 = 200px(直接包含内容、内边距和边框)。
  • 内容区域宽度 = 200px - 20px×2 - 5px×2 = 150px

为什么推荐使用 border-box?

  • 直观布局:设置 width: 100% 时,元素不会因添加 padding/border 而意外超出父容器。
  • 简化计算:无需手动调整宽度来抵消 padding border 的影响。
  • 响应式友好:更易控制元素在容器中的精确占比。

实际应用建议:

全局设置为 border-box (常见最佳实践):

* {

box-sizing: border-box; /* 所有元素继承此计算方式 */

}

示意图:

┌────────────────────┐

│ margin │

│ ┌─────────────────┐ │

│ │ border │ │

│ │ ┌──────────────┐ │ │

│ │ │ padding │ │ │

│ │ │ ┌───────────┐ │ │ │

│ │ │ │ content │ │ │ │

│ │ │ └───────────┘ │ │ │

│ │ └─────────────┘ │ │

│ └─────────────────┘ │

└────────────────────┘

  • content-box :仅蓝色区域(content)计入 width/height
  • border-box :蓝色 + 绿色 + 橙色区域( content + padding + border )计入 width/height

注意 box-sizing 不影响外边距( margin ),它始终在总尺寸之外。

爱学习的小伙伴更多精彩关注不迷路哟~

相关文章

浅谈position中absolute和relative

CSS position属性中absolute和relative很容易让人弄混,基本的概念什么着,你去参考W3C,就不啰嗦了--------------------------------------...

探索CSS position属性(css的position的属性有哪些)

提示:点击上方"蓝色字体"↑ 可以订阅噢!摘要 51RGB官方微信position是CSS中非常重要的一个属性,通过position属性,我们可以让元素相对于其正常位置,父元素或者浏览器窗口进行偏移。...

为什么有些事情用CSS就够了(css为什么不能用百分比)

JavaScript确实强大,这是毋庸置疑的。 但你知道吗?其实不一定每次都需要它。 事实上,JavaScript越少,网站性能往往越好。 为什么要减少JavaScript的使用? 想象你背...

简单了解CSS3的all属性(css3 selector)

作者:张鑫旭(@张鑫旭)网址:http://www.zhangxinxu.com/wordpress/2016/03/know-about-css3-all/一、兼容性一些CSS文章,或者CSS文档,...

CSS实现常见元素水平、垂直居中(css中元素水平居中显示的方法?)

CSS实现常见元素水平、垂直居中(css中元素水平居中显示的方法?)

本文简单介绍如何通过CSS实现常见元素的水平、垂直居中。水平居中行内元素这种情况最简单,只需要将行内元素包括在一个display属性为block的父元素中,并且设置父元素text-align为居中即可...