【解决子盒子添加margin-top导致父盒子塌陷问题!!!】

盒子塌陷的原因

  1. 浮动导致的塌陷,浮动会脱落标准流
  2. 嵌套的两个盒子,子盒子设置margin-top会导致父盒子一下下移

父盒子默认定位

//css样式
<style>
    .box{
+     position: static;
      width: 300px;
      height: 300px;
      background-color: pink;
    }
    .son{
      margin-top: 100px;
      width: 100px;
      height: 100px;
      background-color: skyblue;
    }
  </style>
//html样式
<div class="box">
    <div class="son"></div>
  </div>

如图,产生塌陷
在这里插入图片描述

父盒子绝对定位

absolut脱离的文档流是相对于其父元素的,父元素的position属性不为static(static为position默认属性), 如果absolute所在元素的父元素position属性为static则其继续向上寻找,直到找到符合要求的父元素。脱离文档流之后其他元素会无视此元素,其此元素不再占据原本的位置

//css样式
<style>
    .box{
+     position: absolute;
      width: 300px;
      height: 300px;
      background-color: pink;
    }
    .son{
      margin-top: 100px;
      width: 100px;
      height: 100px;
      background-color: skyblue;
    }
  </style>

如图,效果图同上
在这里插入图片描述

父盒子固定定位

fixed:设置此属性的元素在位置上总是相对于body标签

//css样式
<style>
    .box{
+     position: fixed;
      width: 300px;
      height: 300px;
      background-color: pink;
    }
    .son{
      margin-top: 100px;
      width: 100px;
      height: 100px;
      background-color: skyblue;
    }
  </style>

效果图如下:
在这里插入图片描述

解决方法

清除浮动

给父元素添加overflow:hidden/overflow:auto;

.box{
	//清除浮动
	overflow: hidden;
}

缺点:当子元素有定位属性时overflow:auto;有可能出现滚动条,影响美观。overflow:hidden;可能会带来内容不可见的问题

给父盒子添加border边框

.box{
	//边框
	border: 1px solid #333;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值