为什么我在top里面添加marigin-top:100px, 两个div标签都会下移,但是margin-left就只有里面的标签移动?

为什么我在top里面添加marigin-top:100px, 两个div标签都会下移,但是margin-left就只有里面的标签移动?

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
.content{
width:800px;
height:400px;
background-color: skyblue;
box-sizing:border-box;
/*padding-top:100px;*/
/*padding-left:200px;*/
}
.top{
width:400px;
height:200px;
background-color: yellow;
margin-top:100px;
margin-left:200px;
}
</style>
</head>
<body>
<div class="content">
<div class="top"></div>
</div>
</body>
</html>

相关截图:

http://img1.sycdn.imooc.com//climg/6044fd1e093c507516750829.jpg

正在回答

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

1回答

同学,你好!

当一个盒子如果没有上边距(padding-top)和上边框(border-top),那么这个盒子的上边距会和其内部文档流中的第一个子元素的上边距重叠,因此会出现同学描述的效果。

同学可以为父元素设置padding-top。 如下图所示:

http://img1.sycdn.imooc.com//climg/6045a19e09cedb8b04570270.jpg

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


  • 努力study 提问者 #1

    那这个盒子原来不也没有左边距和左边框吗,为什么在top里面使用margin-left就会使黄色块向左移动,而第一个div没有移动呢?难道是有默认的左边距吗?

    2021-03-08 12:11:21
  • 好帮手慕美 回复 提问者 努力study #2

    同学,你好!外边距的重叠只产生在普通流文档的上下外边距之间,水平方向上不会出现边距重叠的情况。祝学习愉快!

    2021-03-08 14:27:30
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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