html的塌陷原理是什么,HTML&CSS基础之高度塌陷问题

66b52468c121889b900d4956032f1009.png

8种机械键盘轴体对比

本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?

本篇文章要说的是怎么解决高度塌陷问题,首先先了解下什么是高度塌陷。

高度塌陷

在文档流中,父元素的高度默认是子元素撑开的,也就是子元素多高,父元素多高。但为子元素设置浮动以后,子元素会完全脱离文档流,会导致子元素无法撑起父元素的高度,导致父元素的高度塌陷。由于父元素的高度塌陷了,则父元素下的所有元素都会向上移动,这样会导致页面布局混乱。如果父元素不包含任何的可见背景,这个问题会很难被注意到,但这是一个很重要的问题。解决高度塌陷方案一:

根据W3C标准,在页面中元素都有一个隐含的属性叫做Block Formatting Context,简称BFC,可以设置打开或者关闭,默认关闭,开启BFC以后,元素具有以下属性:

1、父元素的垂直外边距不会和子元素重叠

2、开启BFC元素不会被浮动元素所覆盖

3、开启BFC元素可以饱含浮动的子元素

那么,如何开启元素的BFC呢,如下

1、设置元素浮动:导致元素负宽度丢失,下面元素上移

2、设置元素绝对定位

3、将设置元素为inline-block:可解决宽度丢失

4、将元素的overflow设置为一个非visible的值:overflow: hidden; zoom:1;(注意zoom: 1仅支持IE)解决高度塌陷方案二:

可以直接在高度塌陷的父元素的最后,添加一个空白的div,由于这个div并没有浮动,所以他是可以撑开父元素高度的,然后再对其清除浮动:clear: both;,这样可以通过这个空白的div来撑开父元素的高度,基本没有副作用,但是会在页面中添加多余的结构解决高度塌陷方案三:

通过after伪类向元素添加一个空白的块元素,然后对其清除浮动,这样做和添加一个div的原理一样,可以达到一个相同的效果,且不会在页面中添加多余的div,几乎没有副作用,如下:1

2

3

4

5

6

7

8

9

clearfix:after{

content: "";

display: block;

clear: both;

}

本文到此结束,谢谢大家~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值