web中盒子模型的“外边距合并”与“margin-top塌陷问题”

简介: 外边距合并盒子模型在嵌套的情况下,当两个垂直外边距相遇时,它们将形成一个外边距。合并后的外边距的高度等于两个发生合并的外边距的高度中的较大者。

外边距合并


盒子模型在嵌套的情况下,当两个垂直外边距相遇时,它们将形成一个外边距。合并后的外边距的高度等于两个发生合并的外边距的高度中的较大者。


解决方法如下:


1、使用这种特性


例如:

20190505213600228 (1).png

<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style type="text/css">
    .box{
      width: 500px;
      border: 1px solid #000;
      margin:50px auto 0;
    }
    .box div{
      /*margin-left: 20px;
      margin-right: 20px;
      margin-top: 20px; 
      margin-bottom: 20px;*/
      margin:20px; 
    }
  </style>
</head>
<body>
  <div class="box">
    <div>外边距合并指的是,当两个垂直外边距相遇时,它们将形成一个外边距。合并后的外边距的高度等于两个发生合并的外边距的高度中的较大者。</div>
    <div>外边距合并指的是,当两个垂直外边距相遇时,它们将形成一个外边距。合并后的外边距的高度等于两个发生合并的外边距的高度中的较大者。</div>
    <div>外边距合并指的是,当两个垂直外边距相遇时,它们将形成一个外边距。合并后的外边距的高度等于两个发生合并的外边距的高度中的较大者。</div>
    <div>外边距合并指的是,当两个垂直外边距相遇时,它们将形成一个外边距。合并后的外边距的高度等于两个发生合并的外边距的高度中的较大者。</div>
  </div>
</body>
</html>


2、设置一边的外边距,一般设置margin-top


3、将元素浮动或者定位



margin-top 塌陷


在两个盒子嵌套时候,内部的盒子设置的margin-top会加到外边的盒子上(特别是想要设置内部盒子居中时),导致内部的盒子margin-top设置失败。也只有top方向上有此bug。


解决方法如下:


1、外部盒子设置一个边框


2、外部盒子设置 overflow:hidden


3、外部盒子使用伪元素类(推荐):


clearfix:before{

   content: '';

   display:table;

}


<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style type="text/css">
    .clearfix:before{
      content: "";
      display: table;
    }
    .con{
      width: 300px;
      height: 300px;
      background-color: gold;
      /*border: 1px solid; 第一种解决塌陷的方法*/
      /*overflow: hidden; 第二种解决塌陷的方法*/
    }
    .box{
      width: 200px;
      height: 100px;
      background-color: green;
      margin-top: 100px;/*margin-top塌陷*/
      margin-left: 50px;/*其他方向无塌陷*/
    }
  </style>
</head>
<body>
  <div class="con clearfix">
    <div class="box"></div>
  </div>
</body>
</html>
相关文章
|
5天前
|
前端开发
【前端web入门第五天】03 清除默认样式与外边距问题【附综合案例产品卡片与新闻列表】
本文档详细介绍了CSS中清除默认样式的方法,包括清除内外边距、列表项目符号等;探讨了外边距的合并与塌陷问题及其解决策略;讲解了行内元素垂直边距的处理技巧;并介绍了圆角与盒子阴影效果的实现方法。最后通过产品卡片和新闻列表两个综合案例,展示了所学知识的实际应用。
22 11
|
5天前
|
前端开发
【前端web入门第五天】02 盒子模型基础
本文档详细介绍了CSS中的盒子模型及其组成部分,包括内容区域、内边距、边框线和外边距。通过具体示例展示了如何设置边框线、内边距及外边距,并解释了尺寸计算方法和版心居中的技巧。内容丰富,示例清晰,有助于理解盒子模型在网页布局中的应用。
|
3月前
|
前端开发
Web网页制作-知识点(4)——CSS盒子模型、弹性盒模型(flex box)、文档流、浮动、清除浮动、定位、圆角、阴影二
Web网页制作-知识点(4)——CSS盒子模型、弹性盒模型(flex box)、文档流、浮动、清除浮动、定位、圆角、阴影二
34 0
|
3月前
|
前端开发 容器
Web网页制作-知识点(4)——CSS盒子模型、弹性盒模型(flex box)、文档流、浮动、清除浮动、定位、圆角、阴影(一)
Web网页制作-知识点(4)——CSS盒子模型、弹性盒模型(flex box)、文档流、浮动、清除浮动、定位、圆角、阴影一
46 0
|
4月前
|
前端开发 UED
【Web 前端】css盒子模型有几种类型?它们区别是什么?
【4月更文挑战第22天】【Web 前端】css盒子模型有几种类型?它们区别是什么?
|
4月前
|
前端开发 开发者
web前端---------盒子模型2
web前端---------盒子模型2
22 0
|
4月前
|
前端开发
web前端---------盒子模型
web前端---------盒子模型
34 0
|
11月前
|
前端开发 容器
Web前端 — CSS之盒模型 以及margin负值、塌陷重叠问题
Web前端 — CSS之盒模型 以及margin负值、塌陷重叠问题
49 0
|
运维 Kubernetes 供应链
【极狐 GitLab】在 web 端合并分支
【极狐 GitLab】在 web 端合并分支
322 0
|
前端开发
【web前端开发】超详细讲解CSS盒子模型
所有HTML元素可以看作盒子,CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和实际内容。 盒模型允许我们在其它元素和周围元素边框之间的空间放置元素。