美文网首页
前端–解决浮动引起的高度塌陷问题

前端–解决浮动引起的高度塌陷问题

作者: 背着全栈去攻城 | 来源:发表于2018-08-24 09:13 被阅读0次

今天学习了如何解决HTML页面子元素浮动时由于脱离文档流导致的其父元素(未设置宽高)高度塌陷的问题。接下来,我们来谈谈这个问题的解决步骤。

首先我们先引出一个概念:Block Fomatting Context,我们称为块格式化上下文 简称BFC,这是每个元素都具有的一个属性!

开启BFC的元素都有以下特点:

1.开启了BFC的元素与其父元素的垂直外边距不会发生重叠

2.开启了BFC的元素会包含其浮动的子元素*

3.开启了BFC的元素不会被浮动元素所覆盖

那么如何开启BFC呢?

1.display:inline-block

 -这种方式虽然能够撑开父元素,且下面元素布局不会受到影响,但是会使父元素宽度丢失。

2.设置元素浮动

-这种方式虽然能够撑开父元素,但会使父元素宽度丢失,且下面所有元素的布局也会向上挪动,影响布局

3.overflow:hidden

-副作用最小的开启BFC的方式

以上是开启BFC来解决高度塌陷问题。

解决高度塌陷还有另一种方案:

原理:给浮动的元素下面添加一个兄弟元素,然后这个元素只要设置了clear:both;那么就可以解决高度塌陷的问题,是不是很神奇!这个呢原因就在于clear属性的特点是:使当前元素不受规定一侧其他浮动元素对该元素的影响。当我们在浮动元素下加一个清除浮动了的盒子后,虽然上面元素还是浮动的,但是下面盒子的显示就好像上面元素没有浮动似的,就会在浮动元素的下方显示,因为下方的盒子没有浮动,真实存在,那么就会撑开父元素,所以高度塌陷的问题就解决了! 但是呢?虽然这种解决方式是W3C推荐的方式,但是这种解决高度塌陷的方式又有那么一点点缺点,那就是我们无缘无故的添加了一个div块,等于在页面中又添加了一个结构。所以根据同一原理又引出了另一种方案。

最终版的解决方案就是我们自己不手动在HTML中添加div盒子,而是通过css来设置:给父元素设置一个伪元素选择器 :after,代码如下:


          .d1{        /*这是父元素的类选择器*/

                border:2px solid red;

            }

            .d1:after{      /*添加一个伪元素选择器,利用CSS让父元素在其最后添加一个块元素,并清除浮动*/

                content:"";

                display: block;

                clear: both;

            }

            .d2{    /*这是浮动了的子元素类选择器*/

                width:100px;

                height:100px;

                float:left;

                background-color: aqua;

            }

利用CSS来解决高度塌陷使我们最推荐使用的方法!

相关文章

  • 前端–解决浮动引起的高度塌陷问题

    今天学习了如何解决HTML页面子元素浮动时由于脱离文档流导致的其父元素(未设置宽高)高度塌陷的问题。接下来,我们来...

  • 前端

    1.浮动 2.高度塌陷 3.解决高度塌陷

  • 解决高度塌陷2

    为什么出现高度塌陷?当我们设置块级元素进行浮动的时候,会导致父元素塌陷,所以需要我们解决高度塌陷问题

  • 高度塌陷

    高度塌陷问题:子元素浮动父元素的高度没了,就会造成高度塌陷,可以开启bfc来解决这个问题,bfc有三种特性 1.父...

  • 前端07day

    高度塌陷: 块元素默认父亲宽,高度由内容撑开父元素高度由子元素撑开浮动后塌陷 解决高度塌陷: BFC 1.父元素的...

  • 塌陷,导航,定位

    高度塌陷 块元素默认父亲宽,高度由内容撑开父元素高度由子元素撑开浮动后塌陷解决高度塌陷:BFC 1.父元素的垂直...

  • 清除浮动,定位

    定位 clear 清除左浮动 清除右浮动 both 可以清除对它影响最大的浮动可以解决高度塌陷 谁塌陷就加上cle...

  • 前端(塌陷)

    高度塌陷 解决高度塌陷 解决高度塌陷2 导航条 清除浮动 放假作业 1.开班计划 2.翻页 3.导航条 4.导航条2

  • HTML-05day

    1、高度塌陷 2、清除浮动 3、导航条 4、解决高度塌陷 5、相对定位 6、绝对定位 7、近期开班

  • 高度塌陷、清除浮动、元素垂直居中

    高度塌陷: 定义:父元素没有设置高度,子元素设置了浮动(float)属性解决办法:清除浮动(仅清除浮动的负面影响,...

网友评论

      本文标题:前端–解决浮动引起的高度塌陷问题

      本文链接:https://www.haomeiwen.com/subject/ppaviftx.html