CSS盒模型

1.1 外边距问题

典理情形一:

  • 结构关系:嵌套块元素的垂直外边距塌陷

  • 问题描述:当父元素没有padding,margin,border时子元素与父元素直接相邻、子元素的margin值会传递给父元素并且再次与父元素的margin值发生合并最终的结果是正值取两者中的较大值,负值取绝对值较大的值。

  • 表现:父子元素公用一个外边距

    .parent{
        width:100px;
        height:100px;
        background-color:red;
        
    }
    .child{
        width:100px;
        height:100px;
        background-color:green;
        
        margin-top:100px;
        margin-bottom:100px;
    }
    ​

​​

  • 解决方法

    • 给父元素设置边框或内边距(慎用)

    • 父元素overflow:hidden,改变规则

典型情形二:

  • 结构关系:相邻元素垂直外边距合并

  • 问题描述:当两个块级兄弟元素垂直方向上的margin值直接相遇,会发生合并,最终结果是正值取两者中的较大值,负值取绝对值较大的值

  • 表现:两个外边距合并成一个

  .box1{
      width:100px;
      height:100px;
      background-color:red;
      margin-bottom:100px;
  }
  .box2{
      width:100px;
      height:100px;
      background-color:green;
      margin-top:100px;
  }
  <div class="box1">
     <div class="box2"></div>
  </div>
  • 解决方法

    • 尽量只定义其中一个的margin值

    • 给其中一个盒子加父元素overflow:hidden,改变渲染规则

  • 其他情况同上【简单带过如后代元素出现同类问题等】

1.2 总结

  • 设问通过对盒模型的实际使用对比出它与快递盒子的不同之处

  • 总结盒子模型占位的计算:width/height + padding + margin

  • 提示学生注意实际开发的过程中要明确测量的宽高是内容宽还是包括了padding的占位宽高

  • 垂直方向上相遇的margin值出现折叠问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值