当我把代码的p选择器换成div,为什么margin又重新塌陷了的?

当我把代码的p选择器换成div,为什么margin又重新塌陷了的?

<!DOCTYPE html>

<html lang="en">


<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

    <style>

        * {

            margin0;

            padding0;

        }


        div {

            overflowhidden;

        }


        p {

            height20px;

            width20px;

            border4px solid green;

            margin20px;

        }

    </style>

</head>


<body>

    <div>

        <p></p>

    </div>

    <div>

        <p></p>

    </div>

</body>


</html>


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,如果给div设置上margin塌陷是正常的,因为会取最大值,但是给div设置overflow:hidden;属性不能解决塌陷问题。

之前代码中是子元素p之间塌陷,给父盒子添加overflow属性。但现在是div自己塌陷,不能使用overflow解决了。可以添加浮动

http://img1.sycdn.imooc.com//climg/5fab436209a45dd003440209.jpg

这样两个div之间就会有40px间距​

http://img1.sycdn.imooc.com//climg/5fab436c0976140b01990109.jpg

祝学习愉快!

好帮手慕星星 2020-11-10 19:19:39

同学你好,代码中给div元素加上了overflow:hidden;属性,形成了BFC,p的margin值不会取最大值,是相加的效果:

http://img1.sycdn.imooc.com//climg/5faa772909deded702130143.jpg

margin值并没有塌陷。

不知道同学测试出来是什么效果,建议再重新测试下哦。

祝学习愉快!

  • 提问者 慕斯3525401 #1
    p { height: 20px; width: 20px; border: 4px solid green; margin: 20px; } 我意思是把这个p选择器改写成div,就塌陷了
    2020-11-10 19:33:42
  • 慕沐0341706 回复 提问者 慕斯3525401 #2
    那你得给改写的选择器写上overflow属性才不塌陷啊,你这里面又没有
    2020-11-16 18:04:35
  • 我说的不对,上面那个老师说的好,overflow解决它的子盒子的塌陷(隐藏有overflow盒子的超出边框的部分),要是给本身盒子加上overflow属性,这个盒子又和其他盒子有边距也塌陷,不塌陷的(隐藏的)是它的子盒子,兄弟盒子不能取消塌陷
    2020-11-16 18:15:06
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师