CSS3 box-sizing 属性 怪异盒模型border-box

box-sizing属性有三种border-box,content-box,inherit,其中inherit是规定应从父元素继承 box-sizing 属性的值。所以说来其实只有两种。

content-box是正常盒模型,是指块元素box-sizing属性为content-box的盒模型,也是默认的属性。一般在现代浏览器中使用的都是正常盒模型content-box,它也是标准 w3c 盒子模型。在这种情况下,盒模型的大小包括content,padding,border,并且先做content。可能还有说margin,注意margin是外部距离,是盒子外部的,不包括在盒子内部,这个时候相当于一个元素的实际宽高是由padding + border + content  组成。

border-box是一种怪异盒模型。怪异盒模型是先做盒。然后添加border,padding,最后做content。即保证盒模型优先,先做盒再放内容,不管内容是否放得下,一般手机上用的更多。总结一句话就是:border-box的border和padding是在盒子的内部的,也就是说规定了盒子的大小,那么盒子不会因为设定了border和padding而被撑大,所以这种盒模型在响应式网站,尤其是手机端非常常见。

div {
  width: 100px;
  height: 50px;
  padding: 20px;
 border: 10px solid orange;
  background: pink;
}

 /**元素的总宽度 = 100 + 20*2 + 10*2; 总高度 = 50 + 20*2 + 10*2 ; */ 
.content-box { 
  box-sizing: content-box; 
}

 /** 元素的总宽度 = 100; 总高度 = 50px; */  
.border-box { 
  box-sizing: border-box;
}

代码 2020-04-23 15:57:31 通过 网页 浏览(2143)

共有0条评论!

发表评论