当我在学习box-sizing:border-box的时候,在MDN文档里看到这么一段话
在CSS中,你设置一个元素的 width 与 height 只会应用到这个元素的内容区。如果这个元素有任何的 border 或 padding ,绘制到屏幕上时的盒子宽度和高度会加上设置的边框和内边距值。
box-sizing 属性可以被用来调整这些表现:
- content-box 是默认值。如果你设置一个元素的宽为100px,那么这个元素的内容区会有100px宽,并且任何边框和内边距的宽度都会被增加到最后绘制出来的元素宽度中。
- border-box 告诉浏览器去理解你设置的边框和内边距的值是包含在width内的。也就是说,如果你将一个元素的width设为100px,那么这100px会包含其它的border和padding,内容区的实际宽度会是width减去border + padding的计算值。大多数情况下这使得我们更容易的去设定一个元素的宽高。
当我使用下列测试代码时
.test{
height: 100px;
width: 100px;
box-sizing: border-box;
border: 25px red solid;
}
它表现的符合 width(内容区实际宽度) = width(设置的宽度,这里是100) - border -padding
当设置为
.test{
height: 50px;
width: 50px;
box-sizing: border-box;
border: 25px red solid;
}
也还是合乎width(内容区实际宽度) = width(设置的宽度,这里是50) - border -padding
当设置为
.test{
height: 0px;
width: 0px;
box-sizing: border-box;
border: 25px red solid;
}
为什么盒子还是会有border的宽度,请教下各位
请注意,设置了border-box的属性值后,表现的宽度 = width + padding + border-width