CSS 中 box-sizing 属性的border-box 值将永远改变前端的生命。在我们的设计中使用填充是一件麻烦事。为什么?根据盒子的型号。什么型号的盒子?CSS 之一。但那是什么?好吧,如果你有时间想看视频,我会告诉你的。
CSS 属性box-sizing
指示应如何计算元素的测量值。这看起来微不足道,但并非如此,因为默认情况下CSS 认为框的宽度和高度来自width
andheight
属性。这是什么意思?好吧,如果你添加一个padding
或一个border
框的渲染大小将是:宽度+填充+边框。
在下面的示例中,我们将有一个 290px 宽的框,因为: 250px 宽度 + (10px * 2) 填充 + (10px * 2) 边框
div {
width: 250px;
border: 10px;
padding: 10px;
}
虽然我们在那里看不到它,但该物业box-sizing
负责说明应该如何计算。在这种情况下,它使用 value content-box
,因为它是它的默认值。
padding
现在这是非常有问题的,因为如果元素有或,则很难预测地计算元素的宽度或高度border
。为了解决这个问题,我们有 value border-box
。
为了简化盒子的计算,我们可以使用border-box
今天的浏览器完全支持的值(我们必须回到 Internet Explorer 8 看看哪里不支持)。
border-box
中的值box-sizing
使padding
和border
成为框宽度计算的一部分,之后它们不会相加。
在下面的示例中,我们将有一个 250px 宽的框,并且padding
和border
已经是width
元素计算的一部分:
div {
box-sizing: border-box;
width: 250px;
border: 10px;
padding: 10px;
}
有了这个,我们大大简化了我们的生活,因为如果我们想要一个250px
以这种方式测量的盒子,我们将确保无论我们使用边框还是填充,它都会是我们指定的尺寸。布局给我们带来了多大的麻烦!
许多 CSS 重置或规范化器已经包含了您的页面使用这种类型的 CSS 框模型计算所必需的 CSS,但是如果出于某种原因,您需要手动将其添加到您的项目中,最好按如下形式使用它:
html {
box-sizing: border-box;
}
*, *:before, *:after {
box-sizing: inherit;
}
这样做是让您html
使用它border-box
,并且元素继承此值,但如果需要,可以将其更改为另一个值(尽管您不太可能使用它,谁知道您是否加载了某些第三方组件)。