老师您好,请问我这里添加了overflow:hidden为什么没有解决高度塌陷的问题

来源:2-3 BFC规范和浏览器差异

程序媛小灯

2020-10-23 20:17:11

http://img.mukewang.com/climg/5f92c99609cba0a904660488.jpg

这里两个div之间的距离还是20px

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>BFC规范和浏览器差异</title>
    <style>
        .container {
            width: 306px;
            /* 不设置高度 */
            /* height: 202px; */
            border: 5px solid #000;
            margin: 20px;
            /* 创建BFC的几种方式 */
            overflow: hidden;
            /* display: inline-block; */
            /* float: left; */
        }
        .box {
            float: left;
            background: rgb(212, 97, 97);
            width: 100px;
            height: 200px;
            border: 1px solid #000;
        }
    </style>
</head>
<body>
    <!-- 一个盒子不设置height,当内容子元素都浮动时,无法撑起自身,需要设置形成BFC -->
    <div class="container">
        <div class="box"></div>
        <div class="box"></div>
        <div class="box"></div>
    </div>
    <div class="container">
        <div class="box"></div>
        <div class="box"></div>
        <div class="box"></div>
    </div>
</body>
</html>


写回答

2回答

好帮手慕慕子

2020-10-24

同学你好, 是想问添加了overflow:hidden;为什么没有解决margin塌陷的问题吧?

代码中虽然给container盒子添加overflow:hidden;属性形成了BFC,但这个BFC是针对container内部的元素的,而不是它自身,所以container盒子添加的margin属性,会出现塌陷问题。

建议:可以分别添加一个盒子包裹container,给这个盒子添加overflow:hidden;属性,创建BFC,消除container盒子的margin塌陷问题。

http://img.mukewang.com/climg/5f939bc5090c701611750517.jpg

效果图:

http://img.mukewang.com/climg/5f939bf70911162e10500531.jpg

祝学习愉快~

3

weixin_慕沐1378591

2020-10-24

container里的overflow:hidden可以撑起自身以及设置margin,但是为什么不能解决塌陷呢...

试了下外面再套层div,然后再设置overflow:hidden就可以解决垂直塌陷...

来个老师解答下吧

0
heixin_慕沐1378591
h 猜对了(哭笑)..
h020-10-24
共2条回复

0 学习 · 15276 问题

查看课程