盒模型详解

Posted lanyb009

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了盒模型详解相关的知识,希望对你有一定的参考价值。

(1)未加任何修饰的盒模型

 1 <template>
 2   <div>
 3     <div class="top">上列</div>
 4     <div class="bottom">下列</div>
技术分享图片

 

 5   </div>
 6 </template>
 7 
 8 <script>
 9 export default {
10   name: ‘Home‘
11 }
12 </script>
13 
14 <style scoped>
15   .top{
16     background: blue;
17     width: 300px;
18     height: 300px;
19   }
20   .bottom{
21     background: red;
22     height: 300px;
23     width: 300px;
24   }
25 </style>

 (2)在上列中加入border,即:

 1 <template>
 2   <div>
 3     <div class="top">上列</div>
 4     <div class="bottom">下列</div>
技术分享图片

 

 5   </div>
 6 </template>
 7 
 8 <script>
 9 export default {
10   name: ‘Home‘
11 }
12 </script>
13 
14 <style scoped>
15   .top{
16     background: blue;
17     width: 300px;
18     height: 300px;
19     border: 55px solid #111;
20   }
21   .bottom{
22     background: red;
23     height: 300px;
24     width: 300px;
25   }
26 </style>

 可见,并没有使整体变大,而是让里面的内容变小了;

(3)给上列中加1个margin,即:

 1 <template>
 2   <div>
 3     <div class="top">上列</div>
 4     <div class="bottom">下列</div>
技术分享图片

 

 5   </div>
 6 </template>
 7 
 8 <script>
 9 export default {
10   name: ‘Home‘
11 }
12 </script>
13 
14 <style scoped>
15   .top{
16     background: blue;
17     width: 300px;
18     height: 300px;
19     border: 55px solid #111;
20     margin: 10px;
21   }
22   .bottom{
23     background: red;
24     height: 300px;
25     width: 300px;
26   }
27 </style>

 可以看出,上列的大小不变,但位置进行了移动,且保持与其它元素一定的距离;

(4)给上列加1个padding,即:

 1 <template>
 2   <div>
 3     <div class="top">上列</div>
 4     <div class="bottom">下列</div>
技术分享图片

 

 5   </div>
 6 </template>
 7 
 8 <script>
 9 export default {
10   name: ‘Home‘
11 }
12 </script>
13 
14 <style scoped>
15   .top{
16     background: blue;
17     width: 300px;
18     height: 300px;
19     border: 55px solid #111;
20     margin: 10px;
21     padding: 20px;
22     color: aliceblue;
23   }
24   .bottom{
25     background: red;
26     height: 300px;
27     width: 300px;
28   }
29 </style>

 可以看出,上列两个字往内进行了收缩。

(5)上下margin叠加的问题

 1 <template>
 2   <div>
 3     <div class="top">上列</div>
 4     <div class="bottom">下列</div>
 5   </div>
 6 </template>
 7 
 8 <script>
 9 export default {
10   name: ‘Home‘
11 }
12 </script>
13 
14 <style scoped>
15   .top{
16     background: blue;
17     width: 300px;
18     height: 300px;
19     border: 55px solid #111;
20     margin: 10px;
21     color: aliceblue;
22   }
23   .bottom{
24     background: red;
25     height: 300px;
26     width: 300px;
27     border: 55px solid #111;
28     margin: 10px; //这里margin作为对比,前者不加,后者加
29   }
30 </style>

技术分享图片技术分享图片

从对比效果图可以看出,上下列的margin被抵消了1个10px;同时,若二者大小不同,以较大的margin值为准。

 当某个元素设置了float属性,那么它们将不再进行空白边叠加;如下:

 1 <template>
 2   <div>
 3     <div class="top">上列</div>
 4     <div class="bottom">下列</div>
技术分享图片

 

 5   </div>
 6 </template>
 7 
 8 <script>
 9 export default {
10   name: ‘Home‘
11 }
12 </script>
13 
14 <style scoped>
15   .top{
16     background: blue;
17     width: 300px;
18     height: 300px;
19     border: 55px solid #111;
20     margin: 10px;
21     color: aliceblue;
22     float: left;
23   }
24   .bottom{
25     background: red;
26     height: 300px;
27     width: 300px;
28     border: 55px solid #111;
29     margin: 10px;
30     float: left;
31     clear: left;
32   }
33 </style>

 可以看出,这时二者中间的宽度为20px;

(6)左右浮动margin加倍问题

按照书上的写法会报错,以后再来验证吧!

以上是关于盒模型详解的主要内容,如果未能解决你的问题,请参考以下文章

2017年总结的前端文章——CSS盒模型详解

css盒模型详解

盒模型详解

盒模型布局详解

CSS 盒子模型详解 IE盒子模型实际应用——把Border设置成不改变宽度高度的内边框

#yyds干货盘点#愚公系列2022年11月 微信小程序-Flex布局详解