在chrome中为什么给子div设置margin-top:20px,结果父和子div一起下移,两个div还是紧挨着。

 我来答
百度网友a19d193
2013-05-03 · TA获得超过3446个赞
知道大有可为答主
回答量:1464
采纳率:100%
帮助的人:1422万
展开全部

也许是bug,也许是标准,不清楚原因,但是chrome和firefox都是如此。建议在父级div使用padding-top代替子div中的margin-top,如果有多个子div且不是全部需要margin-top的话,请在特定的子div外再嵌套一层。例如

<div style="padding-top:20px;">
    <div>test1</div>
</div>
<!--或者-->
<div>
    <div style="float:left;">test1</div>
    <div style="float:left; padding-top:20px;"><div>test2</div></div>
    <div style="float:left;">test3</div>
    <div style="clear:both;"></div>
</div>
sc520226
2013-05-03 · TA获得超过187个赞
知道小有建树答主
回答量:151
采纳率:0%
帮助的人:104万
展开全部
这是一个bug,原因是因为浏览器之间对其解释不一样!
可以对子级加一个display:inline-block;这样就可以是margin-top有效,但是这样子级层不能加{ margin:atuo;}如果子级层宽度和父级层一样那没关系,如果比较小想居中只能在父级设置{ padding-top; };
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
众测嗒测
2013-05-03 · TA获得超过630个赞
知道答主
回答量:103
采纳率:0%
帮助的人:66.1万
展开全部
“一个盒子如果没有上补白(padding-top)和上边框(border-top),那么这个盒子的上边距会和其内部文档流中的第一个子元素的上边距重叠。”
解决方法:
改用padding-top
如果非要用margin-top的话,可以给父div加上padding-top或border-top

推荐你看下这篇文章:http://www.hicss.net/do-not-tell-me-you-understand-margin/
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
s728145305
2013-05-03
知道答主
回答量:7
采纳率:100%
帮助的人:5.8万
展开全部
如果可以的话设置父DIVpadding-top:20px;,或者清除子DIV的浮动,用clear:both:属性。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
woaixiaona1234
2013-05-03 · 超过20用户采纳过TA的回答
知道答主
回答量:159
采纳率:0%
帮助的人:45万
展开全部
着是当然的了,不管在什么浏览器中都会这样啊,子级的标签会跟着父级的标签。
追问
可是对子div设置了margin-top的值了
追答
子级设置了就会相对于父级来进行定位
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式