为什么margin-top:影响了子容器和父容器 而 margin-left:只影响子容器

为什么margin-top:影响了子容器和父容器 而 margin-left:只影响子容器

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <style type="text/css">
        .content{
            width:800px;
            height:400px;
            background-color: red;        
        }
        .top{
            width:400px;
            height:200px;
            background-color: yellow;
             margin-top: 100px;
             margin-left: 200px; 
        }
    </style>
    <title>Document</title>
</head>
<body>
    <div class="content">
        <div class="top"></div>
    </div>
</body>
</html>

上面有同学问过了,老师的回答是因为content没有设置边距,但是左边距也没有设置,只有子容器移动了。

编程题中的任务提示2有点不懂老师可以再讲一下吗?

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

正在回答 回答被采纳积分+1

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

2回答
好帮手慕阿慧 2020-06-18 11:07:54

同学你好,

1、一个盒子如果没有上边距(padding-top)和上边框(border-top),那么这个盒子的上边距会和其内部文档流中的第一个子元素的上边距重叠。所以同学设置子容器的margin-top并没有用的。

子div在父div的里面,想要让子元素相对于父元素移动,要先给父元素加上相对定位,子元素绝对定位。

参考代码如下:

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

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

2、内上边距是指padding-top,box-sizing属性用来设置内边距。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 慕勒0163420 #1
    那为什么margin-left可以呢
    2020-06-18 11:56:59
  • 好帮手慕阿慧 回复 提问者 慕勒0163420 #2
    同学你好,父容器不受子容器margin-left的影响,向右移动,是因为子容器的margin-left是以父容器为参考线的。div默认没有边距。 祝学习愉快~
    2020-06-18 13:45:50
  • 易萧 #3
    刚刚试了下发现,只要父盒子和子盒子中,任意一个设置了绝对定位,都可以达到这个效果,所以父盒子无需设置相对定位,但我不是很明白为什么。
    2020-08-19 12:05:51
慕勒0163420 提问者 2020-06-17 23:03:50

不会左边默认有边距吧???

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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