放肆青春的博客
首页
前端
算法
网络
面试
技术
后端
运维
杂项
数据库
工具
网址
电脑
个人
文章
  • 分类
  • 标签
  • 归档
github (opens new window)
gitee (opens new window)

放肆青春

一个前端菜鸟的技术成长之路
首页
前端
算法
网络
面试
技术
后端
运维
杂项
数据库
工具
网址
电脑
个人
文章
  • 分类
  • 标签
  • 归档
github (opens new window)
gitee (opens new window)
  • 前端

    • 前端 概览
    • 前端汇总

    • front 博文

    • front 项目总结

    • front 高级

    • front tools

  • vue

    • vue 概览
    • vue 汇总

    • vue 博文

    • vue 项目总结

    • vue 高级

  • html

    • html 概览
    • html 汇总

    • html 博文

  • css

    • css 概览
    • css 汇总

    • css 博文

      • css 隔离
      • css 选择器
      • css 布局
      • css 盒子
      • css 文档流
      • css BFC
      • css 回流重绘
      • css 居中
      • css margin合并和塌陷
        • margin 合并/折叠
          • 父子 margin 合并
          • 兄弟 margin 合并
          • 空元素进行 margin 合并
        • margin 塌陷
      • css hack
      • css 行内和块级元素
      • css 单位
      • css 动画
      • css 硬件加速
      • 伪类/伪元素
      • flex布局
      • grid布局
      • table布局
      • 雪碧图/精灵图
    • sass

    • less

  • js

    • javascript 概览
    • JS 汇总

    • ES6

    • JS 博文

    • JS 工具

  • node

    • node 概览
    • node 汇总

    • node 框架

    • node 博文

  • react

    • react 概览
    • react 汇总

    • react 博文

    • react 高级

  • 微信小程序

    • 微信小程序 概览
    • 微信小程序总结
    • 微信小程序文章
    • 微信小程序 博文

    • 微信小程序 高级

  • 微信公众号

    • 微信公众号 概览
    • 微信公众号总结
    • 微信公众号文章
  • 多端开发

    • 多端开发
    • dsbridge 概览
    • jsbridge 概览
    • webview
    • uniapp

      • uniapp 概览
    • taro

      • taro 概览
    • flutter

      • flutter 概览
      • flutter 环境搭建
    • electron

      • electron 概览
  • front
放肆青春
2021-05-26

css margin合并和塌陷

# margin 合并/折叠

margin 合并:块级元素的上外边距或下外边距有时(直接接触/相邻时)会合并为一个外边距

合并原则:正正取最大,负负取最负,正负就相加

# 父子 margin 合并

解决办法:

  1. 父元素加 border

  2. 父元素添加 padding 来代替子元素的 margin

  3. 把父元素设置为 BFC

  4. 父元素加 height、min-height、max-height(适用于最后一个子元素的 margin 合并)

# 兄弟 margin 合并

解决办法:

  1. 用 padding 代替 margin

# 空元素进行 margin 合并

//html
<p>aaaaaaaa</p>
<div class="test"></div>
<p>bbbbbbbb</p>


//css
.test{
    margin: 10px 0 20px 0;
}
1
2
3
4
5
6
7
8
9
10

此时第一个 p 元素和第二个 p 元素之间的间距是 20px。

解决方法

  1. 设置垂直方向的 border;

  2. 设置垂直方向的 padding;

  3. 里面添加内联元素(直接 Space 键空格是没用的);

  4. 设置 height 或者 min-height。

# margin 塌陷

在文档流中,父元素的高度默认是被子元素撑开的

也就是说 子元素有多高,父元素就有多高

但是当子元素设置浮动之后,子元素会完全脱离文档流

此时将会导致子元素无法撑开父元素的高度,导致父元素高度塌陷

解决方案:

  1. 把父元素设置为 BFC

  2. 给父级元素添加一个边框,就可以解决;如果不希望看到边框,可以将边框的颜色设成背景色即可。

更新时间: 5/28/2021, 10:53:25 AM
css 居中
css hack

← css 居中 css hack→

最近更新
01
前端权限管理
02-24
02
vue2指令
02-24
03
vue2 hook
02-24
更多文章>
Theme by Vdoing | Copyright © 2019-2022 放肆青春
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式