html父级高度随着子集变化,当子级元素浮动时让父级元素高度自适应的三种方法(以及多个子集元素同时存在浮动和绝对定位时的问题的解决办法)...

例如:

我是child

效果:

1297766554561224704.htm

1297766554561224704.htm

8c3e356c13a7a7a4380bfcb9721a3878.png

这就是我们经常遇到的问题了,即子级元素浮动的时候父级元素的高度就塌方了……,不过淡定,我们首先就可以想到为父级元素设置高度这种方法来解决的嘛,不过,我们要自适应!自适应!自适应!不要强迫让父级元素站起来,那么,这个时候我们有如下三种方法让父级元素自觉地站起来为子级元素撑起一片天空。

方法一:

这个方法比较常用,即为父级元素添加:

overflow: hidden;

这样就好了,就好了。

虽然这个方法可以解决高度自适应的问题,但是,如果这个时候该父级元素下面同时存在某个子集元素用的绝对定位,而且还定位到这个父级元素的范围外去了,就尴尬了,因为那个绝对定位的子元素(第一部分)找死也找不到了,哎,都是overflow: hidden; 害的,被隐藏了。

就是这样子:

我是child

我是child2

1297766554561224704.htm

1297766554561224704.htm

049315503c182aaf1586b267ed5d3416.png

这个问题我还是常遇到,不知道你是不是也这有过这样的经历。不过,总有解决的办法嘛。

方法二:

将上面代码中父级元素的 overflow: hidden; 改为:

float: left;

(right也可)

看吧:

1297766554561224704.htm

1297766554561224704.htmba8e9fbbf59ae4492e0648649ea65d02.png 就可以了。这样,父级元素的自适应问题解决了,子级元素的绝对定位问题也解决了。当然,由于父级元素使用浮动而导致的其父父级元素如果出现什么问题了,就需要大家根据实际情况灵活解决了。

这样看来,上面两种方法还是都有缺陷嘛,难道就没有一种能够比较美丽(真的要美丽啊)地解决这个问题的方法吗?有的,有的,我们继续:

方法三:

我们既不为父级元素设置 overflow: hidden;  也不设置 float: left;。我们为父级元素添加如下CSS:

#parent::after {

content: "";

display: block;

clear: both;

}

然后,“刷新”一点,哈哈,效果就出来了(同上),其中,display设置为 block或者inline-block都可。而且这方法也很是比较美丽的,然后,就喜欢上它了,哈哈。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值