css盒子模型

1.盒子模型概念

2.标准盒模型

html代码:

1 <!-- 标准盒模型 -->
2     <div class="box">
3         <div class="shoes">
4             正常盒子
5         </div>
6     </div>

css代码:

/*标准盒模型*/

.shoes {
    width: 100px;
    height: 100px;
    background-color: orange;
}

.box {
    width: 100px;
    height: 100px;
    padding: 10px;
    border: 5px solid #f00;
    background-color: #70ff70;
}

在标准盒模型中,设置padding会自动挤压空间,而不会利用给出来的空间,不会占用宽内位置,不通过width影响,会自己挤出空间来。就是说,我的 鞋子是100*100的,我不需要120*120的盒子,你给我一个100*100的盒子就好了,我靠我自己来把他挤成120*120。

再加上border的5px,盒子就是130*130:

这就是标准盒子模型,先做好鞋子,再做鞋盒。

3.怪异盒模型:

怪异盒模型与标准盒模型的区别就是,怪异盒模型是先做好盒子,再来做鞋子,我把盒子的大小固定住,你鞋子怎么挤也没有用。

这时我们只要在我们的代码中加一条box-sizing:boeder-box,就可以把我的盒子给固定住,这时你鞋子想要用padding来撑大盒子的空间已经没用了,因为鞋子已经被固定死了,这时我们就可以用代码:

1 <!-- 怪异盒模型 -->
2     <div class="box1">
3         <div class="shoes1">
4             怪异盒子.
5         </div>
6     </div>
 1 /*怪异盒模型*/
 2 
 3 .shoes1 {
 4     width: 100px;
 5     height: 100px;
 6     background-color: orange;
 7 }
 8 
 9 .box1 {
10     width: 130px;
11     height: 130px;
12     padding: 10px;
13     border: 5px solid #f00;
14     background-color: #70ff70;
15     box-sizing: border-box;
16 }

效果:

如果增大鞋子宽高:

 1 /*怪异盒模型*/
 2 
 3 .shoes1 {
 4     width: 200px;
 5     height: 200px;
 6     background-color: orange;
 7 }
 8 
 9 .box1 {
10     width: 130px;
11     height: 130px;
12     padding: 10px;
13     border: 5px solid #f00;
14     background-color: #70ff70;
15     box-sizing: border-box;
16 }

效果:

鞋盒并没有被撑大,使用怪异盒模型需要根据鞋盒大小计算鞋子大小,不要忘记计算border。

总结:

1) 当我们给width设置一个固定的值或者给width设置100%时,设置padding都会把盒子给挤开,挤大了

2) 若想要不使用怪异盒模型又不会把盒子挤大,请把width设置为auto,width默认的值是auto。自动占满整个屏幕

3) 标准盒模型在pc端比较常用,因为pc端的屏幕大,有优势可以撑

4) 怪异盒模型在手机端比较常用。手机屏幕是有限大小的,有时我们往往需要使用怪异盒模型把他固定住。

5) 怪异盒模型的盒子大小还要加上border的大小。

原文地址:https://www.cnblogs.com/weirihan/p/5882759.html