css排版时出现:里面的div设置margin-top值时外面div会向下移动相应距离这是为什么 请哪位高手帮帮忙

<body><divclass="logon"><divclass="log_bk"></div></div></body>body{margin:0auto;paddi... <body>
<div class="logon">
<div class="log_bk">

</div>
</div>
</body>

body { margin:0 auto; padding:0px; background:#0A76B0;}
#logon{ background:url(../images/logon-bk.jpg) no-repeat left top;
height:865px; width:1251px;}
.log_bk{ background:url(../images/01.png) no-repeat left top; height:380px;
height:270px; margin:300px 0 180px 460px;}

因为背景是图案所以要设置高度,我把#logon的背景定位在顶部也不行。
展开
 我来答
pass_op
推荐于2018-04-13 · TA获得超过1万个赞
知道大有可为答主
回答量:2804
采纳率:100%
帮助的人:4257万
展开全部
设置logon的padding: 1px
因为logon和log_bk垂直方向的margin合并了,如果设置了logon的padding为1px就可以避免margin合并。
更多追问追答
追问
好了,刚才把padding值加到里面的div了,不过两个div的margin值为什么会合并呢?
追答
恩,刚才我写错了,写成里面的了。。
这个是css标准规定的,垂直方向的margin会合并。
比如你有很多段落,margin是10px,其实第一段上面的margin和最后一段下面的margin是10px,且段与段之间的margin也是10px,css标准就是为了保持这个margin一致才规定垂直方向margin要合并。
margin合并时会取最大的那个margin,所以合并后logon的margin-top也成了300px了。
魔堕轮回
2011-05-06 · 超过30用户采纳过TA的回答
知道答主
回答量:193
采纳率:0%
帮助的人:126万
展开全部
因为margin叠加了,你给外边的盒子一个border或者padding就好了,这个叫空白边叠加,你可以具体问度娘一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式