您的位置:首页 > 职场人生

前端基础问题 -- 高度塌陷问题详解(面试重点问题)

2018-09-23 22:14 337 查看

高度塌陷:

父元素的高度,默认被子元素撑开,目前来讲son多高,father就多高。此时如果子元素设置浮动,则会导致其完全脱离文档流,子元素脱离文档流将无法撑开父元素,导致父元素的高度丢失,就是我们说的高度塌陷问题。父元素一旦高度塌陷,则它下边的元素会向上移动,导致整个页面的布局混乱!

例如,我们常常想要图一:

但是,输出的总是图二:

原理:
在w3c标准(非IE6以下版本采用的是W3C标准)中,每一个元素会有一个隐藏的属性,即BFC(块级格式化上下文),该属性在默认情况下是关闭的。

当BFC开启的时候回获得以下特性:

1.父级元素的内外边距不会与子元素重叠
2.开启后不会被浮动元素所覆盖
3.开启后可以包含浮动子元素

解决方法:

  • 直接将父级元素的长宽写死
    缺点:当子元素的大小发生改变时,父级元素不能够自适应

  • 2.为父级元素设置浮动
    一般出现高度塌陷大多是由于浮动引起的
    缺点:当设置浮动后父级元素宽度会跟着发生改变

  • 3.设置绝对定位

  • 4.设置元素为inline-block

  • 5.将overflow属性设置为hidden(推荐使用)
    此方法相对于其他方式来说,副作用最小。

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: