根源:常规流块盒在计算高度时会无视浮动盒子

产生条件:

没有固定高度 的父元素里有浮动元素 时就可能会出现高度坍塌,让原本属于自己的高度没有计算到自己的高度之内。这里分为几种情况,均为个人的理解:

  • 子元素全为浮动元素时,会出现高度坍塌的现象
  • 当子元素为常规流块盒和浮动元素并在同一行时
  1. 如果浮动元素的高度小于块盒的高度,那么不会出现高度坍塌;
  2. 如果浮动元素的高度大于块盒高度时就会发生高度坍塌。
  • 当子元素为常规流块盒和浮动元素并不再同一行时,也会出现高度坍塌。

解决方法:

给父元素固定高度

这个高度应该包含所有子元素,包括浮动元素

【适合高度固定的页面布局,不适合自适应布局】

清除浮动

  • 在父元素结构的最后面添加一个 块盒(必须是块盒,浮动影响的是块盒),给添加的块盒设置clear声明

【会给结构多增加一个节点,影响渲染速度】

div{clear:both;
}
  • 给父元素添加伪元素after,把伪元素转换为块盒并添加clear声明

【属于万能清除法,并可以写到类选择器里简化代码,供多个元素使用】

.clearfix::after{content:"";       //内容为空display:block;    //必须转为块盒clear属性才能生效clear:both;      //清除浮动
}

触发父元素为BFC

  • 让父元素浮动

【会影响和父元素同级的其他元素】

  • 给父元素添加定位(绝对定位和固定定位)

【定位后会脱离文档流,会影响了页面布局】

  • 给父元素添加声明overflow

overflow的值不可以是visible

【影响了自身功能】

  • 更改父元素display属性值

display的值可以是 table-cell 、table-caption 、 inline-flex 、 flex

【会影响子元素的显示效果】

补充:

定位元素(绝对定位和固定定位)也会使父元素高度坍塌

因为绝对定位和固定定位也会使元素脱离文档流

解决方法只能给父元素设置足够高度

高度坍塌的产生条件和解决方法相关推荐

  1. 高度塌陷的产生原因及解决方法

    什么是高度塌陷? 当父元素未设置高度时,所有子元素浮动后,造成子元素脱离文档流进而无法把父元素撑开,父元素高度为0产生高度塌陷,称为高度塌陷问题. 父元素高度塌陷后,父元素以下的元素都会向上移动,导致 ...

  2. HTTP status Code 412 未满足前提条件的解决方法之一

    最近网站老是报告错误.  ajax返回状态为 error 思来想去不知道为啥. 后来跟踪了下,发现是在请求某个页面的时候会返回412错误. 而这个页面的请求是通过jquery  的 $("# ...

  3. input的onchange事件实际触发条件与解决方法

    input中onchange事件已经属于元老级别了,并且现在同onclick一样使用频率很高,然而onchange的机制实际上有很多童鞋并不清楚,我们通过实例来分析这个事件的特征. 触发onchang ...

  4. CSS——高度塌陷以及解决方法

    文章目录 前言 一.什么是高度塌陷? 二.高度塌陷的解决方法 1.解决方法 2.开启BFC 3.开启BFC的特点 总结 前言 本文主要介绍了高度塌陷产生的原因以及解决方法 一.什么是高度塌陷? 高度塌 ...

  5. 动易2005、2006版常见错误号的原因分析及解决方法

    错 误 号:432 错误描述:File name or class name not found during Automation operation 错误来源:PE_Common6 原因分析:服务 ...

  6. 死锁的产生和解决方法

    1.出错提示:System.Web.HttpUnhandledException (0x80004005): 引发类型为"System.Web.HttpUnhandledException& ...

  7. css外边距溢出处理方法,CSS高度坍塌和外边距溢出问题及解决方法

    高度坍塌成因 父元素div未设置高度 子元素全部设置浮动(float: left | right;),浮动元素脱离文档流且不占页面空间 由于父元素为设置高度,高度靠内部子元素撑开,而今子元素全部脱离文 ...

  8. css防止高度塌陷,css之高度塌陷及其解决方法

    浅谈 清除浮动 的多种方式(clearfix) 1.什么是浮动 ? 是否脱离文档流? 1.普通流定位 static(默认方式) 普通流定位,又称为文档流定位,是页面元素的默认定位方式 页面中的块级元素 ...

  9. 高度塌陷问题及解决方法

    高度塌陷问题产生的原因 小提示:最优解在文章底部,嫌啰嗦的可以直接跳到底部. 想要了解产生高度塌陷问题的原因,先提及几个知识点: 1.在文档流中,父元素的高度默认是被子元素撑开的. 2.当子元素设置浮 ...

  10. html的高度自适应,CSS布局自适应高度解决方法

    原作者:Alex Robinson 原文标题:Equal Height Columns 这是一个比较典型的三行二列布局,每列高度(事先并不能确定哪列的高度)的相同,是每个设计师追求的目标,按一般的做法 ...

最新文章

  1. docker 安装MongoDB以及设置用户
  2. 从0开始学习GitHub系列之「向GitHub 提交代码」
  3. Flex4/Flash多文件上传(带进度条)实例分享
  4. MySql中4种批量更新的方法
  5. PreparedStatement预编译的sql执行对象
  6. JavaScript调用WebServices
  7. java listener 实现机制_Java监听器机制ServletContextListener实现执行某方法函数
  8. elipse手机设备显示Target unknown或者offline解决方法
  9. ES11新特性_私有属性---JavaScript_ECMAScript_ES6-ES11新特性工作笔记061
  10. css不定高度实现垂直居中
  11. Pannellum:实例之自动加载全景图
  12. android 自动打开qq,qq自动发消息脚本
  13. 江山三侠—Flash短片轻松学(第2季)
  14. MongoDB下载安装教程 全
  15. 聊斋志异中的《陆判》
  16. [爬虫]requests+正则表达式爬取猫眼电影TOP100
  17. 伯努利分布、泊松分布
  18. Mac邮件客户端怎么添加QQ邮箱
  19. java学习第二周周记
  20. php 批量删除注释,PHP-php做一个程序高效去除注释的方法

热门文章

  1. 微博秒拍等网站的视频图片下载工具:在线下载工具
  2. python使用ffmpeg批量将flv转mp4
  3. c语言8bit转10bit,Win10系统如何才能将8bit(位深度)设定变成10bit呢?
  4. Windows下模拟弱网(web、app)均可使用
  5. 如何快速分割每段视频,并提取画面中任意一帧
  6. der解码规则_使用openssl进行asn1结构的der数据解码
  7. erlang 之简单的Diction实现
  8. 倍福ADS通讯(二)——TwinCat ADS通讯方式
  9. 《人人都是产品经理》——第二章笔记(上)
  10. 什么是脚本语言(python脚本是什么?)