CSS3 box-sizing属性

2024-04-16 15:58:07

box-sizing 属性是在 CSS3 中引入的一个用于控制元素盒模型的属性。盒模型指的是 HTML 元素在页面布局中所占用的空间,包括元素的内容区域、内边距、边框和外边距。

默认情况下,浏览器的盒模型采用 W3C 标准盒模型,即宽度和高度只包含内容的宽度和高度,不包括内边距、边框和外边距。但在实际布局中,我们可能希望元素的宽度和高度能够包括内边距和边框。

box-sizing 属性就是用来控制盒模型的计算方式,有两个可能的取值:

  • content-box:这是默认值。宽度和高度只包括内容的宽度和高度,不包括内边距、边框和外边距。换句话说,设置了元素的宽度和高度时,是指内容区域的宽度和高度。
  • border-box:宽度和高度包括内容、内边距和边框,即设置了元素的宽度和高度时,是指整个盒子模型的宽度和高度。这种方式更为直观,也更容易控制元素在布局中的尺寸。

例如,如果你想要一个宽度为 200px 的元素,同时有 10px 的内边距和 2px 的边框,如果使用 content-box,你需要将宽度设置为 214px(200px + 10px + 2px),但如果使用 border-box,你只需要设置宽度为 200px 即可,内边距和边框会被包含在这个宽度内。

/* 设置盒模型为 border-box */
.example {
  box-sizing: border-box;
  width: 200px;
  padding: 10px;
  border: 2px solid black;
}

这样设置之后,.example 元素的总宽度会是 200px,而不会再加上内边距和边框的宽度。

表情
Ctrl + Enter