CSS——透彻理解margin的使用方法

之前我认为margin不过是盒子与盒子之间上下左右的距离而已,虽然事实如此,但是它们之间距离的规则我还是没有透彻理解,今天更是遇到了margin:-100px;这种写法,让我不得不再好好了解一下margin.

——阅读本篇文章需要10-15分钟

     margin的控制方式是通过margin-top,margin-right,margin-bottom,margin-left,控制盒子模型各个方向的距离。但是不幸地是盒子又分为同级盒子父子盒子

                                                  同级盒子

①  如果现在有左右两个div:box1,box2(假设已经处理好block的问题),那么它们俩的距离为box1的margin-right加上box2的margin-left。

                                            

②   如果现在有上下两个div:box1(margin-bottom:100px;),box2(margin-top:50px),那么它们的竖直距离为100px(不是相加,而是取最大的那个)

                                                                    

                                                 父子盒子

同级盒子不需要考虑padding的问题,但是在父子盒子里要注意padding

①  水平方向。现有father(padding:100px;)和son(margin-left:100px)盒子,那么son盒子左边框距父盒子左边框200px。即父子之间的距离是父盒子的padding加上子盒子的margin。

                                                     

② 竖直方向。竖直方向又分父盒子有padding值和无padding值。

  •  有padding值。规则同水平方向。
  • 无padding值。这时会出现bug(父子上边框无法分开,子盒子设置的margin-top会被应用到父盒子)此处必须要有一张图才能表达我的心情!可以看到子盒子设置的margin-top被应用到了父盒子。而对于此bug的处理方式最好用的是给父盒子添加overflow:hidden。更多方法点击深入理解margin

                              

介绍完他们的距离规则,这里再附加两种难理解的方式:“ % ”的使用和“ - ”的使用。

  • % :是相对于父元素的width。father(width:100px;height:99900px;),son(margin-left:10%;margin-top:10%;),那么子盒子左边框距父盒子10px,上边距也是10px。为什么不是999px呢?因为是只相对于父元素的width啊!
  • - :在margin-right和margin-bottom使用" - "会把后面的元素拉过来。例如:

              

    <div class="box"></div>
    <hr style="background: red; />

    

            .box{
                width: 100px;
                height: 100px;
                background: red;
            }

                                                                      

注意看底下的蓝色的hr线。在给box添加一个margin-bottom: -50px;样式之后,box会把它后面的元素拉上来50px,变成

                                                                    

           在margin-left和margin-top使用“ - ”则自身元素会向左或者向上移动

                                                                  

 

这个margin-left:-100px我十分迷惑,最终是在chrome的控制台上自己调动才发现了它的规则。如果你读不懂我的文字,可以这样试试:                                                 

使用方法是打开控制台,把找到对应的DOM,点击magin属性,然后使用键盘上的上下键就可以看到DOM移动了。

 

 

另外注:本篇文章是自我理解,我也是在学习的过程中,如有错误,,欢迎大佬指正,或者更多的看法,请底部留言,十分感谢。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值