两个父子块元素垂直外边距重合问题的解决

在学习CSS盒子模型过程中,会遇到这一个问题,在两个父子块元素顶端重合时,使用margin-top进行子元素盒子移动时,会发生:父元素跟随子元素一起移动,不可以分开移动,如下图所示:

对红色盒子的margin-top进行设置时,会影响父元素的位置,这种问题的出现,是因为父子元素的外边距在同一条水平线上,对我们的开发有着不好影响,对此目前我想出两种办法对其进行分离操作:

第一种方法:

对黄色方块添加上边框,使两者上边距不在一个水平线上,代码如下

.box1 {
            width: 200px;
            height: 200px;
            background-color: yellow;
            /* 设置1像素,颜色透明的上边框 */
            border-top: 1px transparent solid; 
        }
        .box2{
            width: 100px;
            height: 100px;
            background-color: red;
            margin: 40px;
        }

表现情况如下:

第二种方法:

给黄色盒子先加一个padding-top,使得双方上边距不在同一水平线上,代码如下:

.box1 {
            width: 200px;
            height: 200px;
            background-color: yellow;
            padding-top: 1px;
        }
        .box2{
            width: 100px;
            height: 100px;
            background-color: red;
            margin: 40px;
        }

效果如下:

后言:

方法不止这两种,欢迎讨论

经验分享 程序员 微信小程序 职场和发展