CSS浮动时父级的块级元素高度塌陷问题解决

父级元素的高度塌陷效果

在文档流中,父元素的高度默认是被子元素撑开的,也就是子元素多高,父元素就多高。
但是当为子元素设置浮动以后,子元素会完全脱离文档流,
此时将会导致子元素无法撑起父元素的高度,导致父元素的高度塌陷。效果如下:
在这里插入图片描述
水平导航栏的ul父级元素塌陷成一条直线,代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<style>
    ul {

        padding: 0px;
        margin: 0px;
        list-style-type: none;
        background-color: #dddddd;
        border: 1px solid black;
    }

    li {
        float: left;

        /*border: 1px solid black;*/
    }

    a {
        display: block;
        padding: 8px;

    }
</style>
<body>

<ul>
    <li><a href="#">javascript</a></li>
    <li><a href="#">java</a></li>
    <li><a href="#">html</a></li>
    <li><a href="#">联系方式</a></li>
</ul>
</body>
</html>

使用overflow:hidden修复

在之前的代码基础上在被塌陷的父级元素ul的样式中加上overflow:hidden即可修复父级塌陷
修复之后的父级块元素被撑开了,效果如下:
在这里插入图片描述

添加空白元素清除浮动修复

使用overflow:hidden解决会遇到奇怪的问题,推荐使用伪类添加空白元素然后清除浮动解决塌陷问题

在被塌陷的元素中添加样式,下面的例子使用的是class为boxContain的父级元素

    .boxContain::after{
        content: "";  /*内容为空*/
        display: block;  /* 设置为块级元素 */
        clear: both;  /* 清除浮动 */
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值