ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

HTML关于高度坍塌和BFC以及高度坍塌的最佳方案

2021-04-13 23:35:22  阅读:131  来源: 互联网

标签:BFC 浮动 坍塌 元素 高度 开启


小萌新刚刚入坑博客园,笔记可能并不是很完美,如有不足之处,还望各位指出,小弟必定铭记 下面是因为浮动而造成的高度坍塌 1.高度坍塌        高度坍塌的问题:                      在浮动布局中,父元素的高度默认是被子元素撑开的,                             当子元素浮动后,其会完全脱离文档流,子元素从文档流中脱离                             将会无法撑起父元素的高度,导致父元素的高度丢失                       父元素高度丢失以后,其下的元素会自动上移,导致页面的布局混乱
                      所以高度坍塌是浮动布局中比较常见的一个问题,这个问题我们必须要进行处理! 2.BFC(Block Formatting Context) 块级格式化环境                 -BFC是一个CSS中的一个隐含的属性,可以为一个元素开启BFC                     开启BFC该元素会变成一个独立的布局区域                 -元素开启BFC的元素后的特点:                       1.开启BFC后的元素不会被浮动元素所覆盖                       2.开启BFC后的元素子元素和父元素外边距不会重叠                       3.开启BFC后的元素可以包含浮动的元素                                  - 可以通过一些特殊方式来开启元素的BFC:                       1.设置元素的浮动(不推荐)(副作用比较大)                       2.将元素设置为行内块元素(不推荐)(副作用比较大)                       3.将元素的overflow设置为一个非visible的值(副作用最小)                           -常用的方式为元素设置 overflow:hidden 开启其BFC 以使其可以包含浮动元素                  -下面相对应的方法                          1. /* float:left;*/                           2./*display:inline-block; */                           3.overflow: hidden;                 但这些或多或少有些不足,BFC也只是让其副作用比较小,并不能完美的解决高度坍塌 3.高度坍塌的最佳方案                 使用after伪类解决高度坍塌
              .box1::after{                           content: '';                          display: block;                           clear:both;                      }      用过元素的最后添加元素来撑起高度,用clear清除浮动影响,但clear不能单独使用,尾元素是行内元素,行内元素不独占一行,即使清除了浮动影响也不能撑起高度。所以需要将其转化成一个块元素,这样才能撑起高度坍塌 (图片未截取全,不要误会)

 

 


          

标签:BFC,浮动,坍塌,元素,高度,开启
来源: https://www.cnblogs.com/strongbother/p/14655822.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有