外边距合并的问题 及 相应的解决办法

在网页布局中,有时需要设置css设置外边距(margin), 但是会出现css外边距合并(即重叠)的情况。什么是外边距合并的情况呐?怎么解决呐?

外边距合并

css外边距合并(重叠)是指两个垂直相邻的块级元素,当上下两个边距相遇时,外边距会产生重叠的现象,且重叠后的外边距等于其中较大者。

1、盒子嵌套

HTML:
<!-- 嵌套 -->
<div class="box">
   <div class="container">
   </div>
</div>
CSS:
.box {
  width: 200px;
  height: 200px;
  background-color: pink;
  margin-top: 20px;
  /* padding-top: .1px; */
  /* overflow:hidden; */
  /* overflow:auto; */
}
.container {
  width: 100px;
  height: 100px;
  background-color: red;
  margin-top: 10px;
}

VIEW:

嵌套盒子重叠.png

解决办法:

  • 第1种方法:给外部盒子设置内边距(padding-top:.1px;)即可。
  • 第2种方法:给下面的盒子设置overflow( overflow: hidden; 或 overflow: auto; )即可。

2、相邻盒子

HTML:
<!-- 相邻 -->
<div class="l_box">       
</div>
<div class="l_container">
</div>
CSS:
.l_box {
    width: 200px;
    height: 200px;
    background-color: pink;
    margin-bottom: 20px;
}
.l_container {
    width: 100px;
    height: 100px;
    background-color: red;
    margin-top: 10px;
    /* position: absolute; */
    /* float: left; */
    /* display:inline-block; */
}

VIEW:

相邻盒子重叠.png

解决办法:

  • 第1种方法:给下面的盒子设置定位(position:absolute;)即可。
  • 第2种方法:给下面的盒子设置浮动(float:left;)即可。
  • 第3种方法:将其中任一个盒子设置为行内块元素(dispaly:inline-block;)即可。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 29,029评论 1 45
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,263评论 1 92
  • 1.浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响? 浮动元素不在文档的普通流中,它可以...
    饥人谷_Young丶K阅读 532评论 0 0
  • 课程目标: 学会使用CSS选择器熟记CSS样式和外观属性熟练掌握CSS各种选择器熟练掌握CSS各种选择器熟练掌握C...
    繁华退却阅读 1,807评论 0 0
  • 1.CSS基本概念 1.1 CSS的定义 CSS(Cascading Style Sheets)层叠样式表,主要用...
    寥寥十一阅读 2,101评论 0 6

友情链接更多精彩内容