element-ui栅格系统之margin为负值的情况总结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了element-ui栅格系统之margin为负值的情况总结相关的知识,希望对你有一定的参考价值。

1. 前言

在css布局中margin是一个使用频率比较高的属性,通常我们都是赋值为正数,但是在使用element-ui的栅格系统时,我们经常会发现源码中有使用margin-left和margin-right为负数的情况,特针此进行总结,了解一下margin背后那些不为人知的奇技淫巧。

element-ui栅格系统之margin为负值的情况总结_margin负值总结

2. margin-top为负值的情况

2.1 代码

// css* 
margin: 0;
padding: 0;
box-sizing: border-box;


body,
html
height: 100%;

h2
text-align: center;

/*父元素样式*/
.p
margin: 100px auto;
width: 500px;
height: 500px;
border: 1px solid red;
background-color: #ccc;


.c1
width: 200px;
height: 200px;
border: 1px solid blue;
margin-top: -20px;
/* 此处的百分数是以父级作为参考的 500 * 20% = 100 */
/* margin-top: -20%; */


.c2
width: 200px;
height: 200px;
border: 1px solid green;

// html
<div class="p">
<div class="c1">
子元素1(自身会向上偏移)
</div>
<div class="c2">
子元素2(跟着上偏移)
</div>
</div>

此时的效果如下:

element-ui栅格系统之margin为负值的情况总结_margin负值总结_02

2.2 结论

自身会向上偏移,后面排列的元素跟着向上偏移

3. margin-bottom为负数的情况

3.1 代码

// css*   margin: 0;
padding: 0;
box-sizing: border-box;


body,
html
height: 100%;

h2
text-align: center;

/*父元素样式*/
.p
margin: 100px auto;
width: 500px;
height: 500px;
border: 1px solid red;
background-color: #ccc;


.c1
width: 200px;
height: 200px;
border: 1px solid blue;
margin-bottom: -20px;


.c2
width: 200px;
height: 200px;
border: 1px solid green;

// html
<div class="p">
<div class="c1">
子元素1(自身无偏移)
</div>
<div class="c2">
子元素2(向上发生偏移)
</div>
</div>

此时的效果如下:

element-ui栅格系统之margin为负值的情况总结_html_03

3.2 结论

自身无偏移,后面的元素向上发生偏移

4. margin-left为负数且设置固定宽度的情况

4.1 代码

*   margin: 0;  padding: 0;  box-sizing: border-box;


body,
html
height: 100%;

h2
text-align: center;

/*父元素样式*/
.p
margin: 100px auto;
width: 500px;
height: 500px;
border: 1px solid red;
background-color: #ccc;


.c1
width: 200px;
height: 200px;
border: 1px solid blue;
margin-left: -20px;
/* 此处的百分数是以父级作为参考的 500 * 20% = 100 */
/* margin-left: -20%; */
float: left;


.c2
width: 200px;
height: 200px;
border: 1px solid green;
float: left;

// html
<div class="p">
<div class="c1">
子元素1(自身向左偏移 )
</div>
<div class="c2">
子元素2(跟着向左偏移)
</div>
</div>

此时的效果如下:

element-ui栅格系统之margin为负值的情况总结_固定宽度_04

4.2 结论

自身向左偏移,后面排列的元素跟着向左发生偏移

5. margin-left为负数且不设置固定宽度的情况

5.1 代码

*   margin: 0;  padding: 0;  box-sizing: border-box;

body,
html
height: 100%;

h2
text-align: center;

/*父元素样式*/
.p
margin: 100px auto;
width: 500px;
height: 500px;
border: 1px solid red;
background-color: #ccc;


.c1
height: 200px;
border: 1px solid blue;
/**左侧会延宽*/
margin-left: -20px;
/* 此处的百分数是以父级作为参考的 500 * 20% = 100 */
/* margin-left: -20%; */

// html
<div class="p">
<div class="c1">
子元素1(自身向左偏移 )
</div>
</div>

此时的效果如下:

element-ui栅格系统之margin为负值的情况总结_html_05

5.2 结论

自身的宽度向左延宽了

6. margin-right为负数且设置固定宽度的情况

6.1 代码

*   margin: 0;  padding: 0;  box-sizing: border-box;body,
html
height: 100%;

h2
text-align: center;

/*父元素样式*/
.p
margin: 100px auto;
width: 500px;
height: 500px;
border: 1px solid red;
background-color: #ccc;


.c1
width: 200px;
height: 200px;
border: 1px solid blue;
margin-right: -20px;
/* 此处的百分数是以父级作为参考的 500 * 20% = 100 */
/* margin-right: -20%; */
float: left;


.c2
width: 200px;
height: 200px;
border: 1px solid green;
float: left;

// html
<div class="p">
<div class="c1">
子元素1(自身没有发生偏移)
</div>
<div class="c2">
子元素2(后面排列的元素想左发生了偏移)
</div>
</div>

此时的效果如下:

element-ui栅格系统之margin为负值的情况总结_margin负值总结_06

6.2 结论

自身没有发生偏移,后面的元素向左偏移了

7. margin-right为负数且不设置固定宽度的情况

7.1 代码

*   margin: 0;  padding: 0;  box-sizing: border-box;body,html 
height: 100%;


h2
text-align: center;


/*父元素样式*/
.p
margin: 100px auto;
width: 500px;
height: 500px;
border: 1px solid red;
background-color: #ccc;


.c1
height: 200px;
border: 1px solid blue;
/**右侧会延宽*/
margin-right: -20px;
/* 此处的百分数是以父级作为参考的 500 * 20% = 100 */
/* margin-left: -20%; */

// html
<div class="p">
<div class="c1">
子元素1
</div>
</div>

此时的效果如下:

element-ui栅格系统之margin为负值的情况总结_margin负值总结_07

7.2 结论

自身的宽度向右延宽了

8. 总结

  1. margin负值场景总结

以上是关于element-ui栅格系统之margin为负值的情况总结的主要内容,如果未能解决你的问题,请参考以下文章

浮动元素margin负值的应用

Bootstrap响应式栅格系统设计

负值之美:负margin在页面布局中的应用

关于margin和padding取值为百分比和负值的总结

margin负值的用法及相关布局

margin值为负值