当前位置:   article > 正文

CSS中的margin塌陷问题_css margin塌陷

css margin塌陷

在web学习中我们可能会遇到一个问题:margin塌陷问题

margin塌陷现象有两种:兄弟关系的盒子和父子关系的盒子。

1.兄弟关系盒子:垂直布局的块级元素,上下的margin会合并,取最大的一个margin作为两者间的距离。

解决方法:只给其中一个盒子设置margin值。

2.父子关系盒子:相互嵌套的块级元素,子元素的margin-top会作用在父元素上,使父元素和子元素一起向下移。

例如:

  1. <style>
  2. *{
  3. margin: 0;
  4. padding: 0;
  5. }
  6. .father{
  7. height: 200px;
  8. width: 200px;
  9. background-color: skyblue;
  10. }
  11. .son{
  12. height: 100px;
  13. width: 100px;
  14. background-color: orange;
  15. margin-top: 20px;
  16. }
  17. </style>
  18. </head>
  19. <body>
  20. <div class="father">
  21. <div class="son"></div>
  22. </div>
  23. </body>

 解决方法:1.将子元素转化为行内块元素

  1. .son{
  2. height: 100px;
  3. width: 100px;
  4. background-color: orange;
  5. margin-top: 20px;
  6. /* 1.转化为行内块元素 */
  7. display: inline-block;
  8. }

我们会发现塌陷消失啦

2.给父元素设置border-top或padding-top分隔父子元素

  1. .father{
  2. height: 200px;
  3. width: 200px;
  4. background-color: skyblue;
  5. /* 2.给父元素设置border-top或padding-top分隔父子元素 */
  6. /* border-top: 1px solid pink; */
  7. padding-top: 10px;
  8. }

 也是ok哒

 3.给父元素设置overflow:hidden;

  1. .father{
  2. height: 200px;
  3. width: 200px;
  4. background-color: skyblue;
  5. /* 2.给父元素设置border-top或padding-top分隔父子元素 */
  6. /* border-top: 1px solid pink; */
  7. /* padding-top: 10px; */
  8. /* 3.给父元素设置overflow:hidden; */
  9. overflow: hidden;
  10. }

nice! !

4.设置浮动

最终效果同上

  1. .son{
  2. height: 100px;
  3. width: 100px;
  4. background-color: orange;
  5. margin-top: 20px;
  6. /* 1.转化为行内块元素 */
  7. /* display: inline-block; */
  8. /* 4.设置浮动 */
  9. float: left;
  10. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/128945
推荐阅读
相关标签
  

闽ICP备14008679号