为了账号安全,请及时绑定邮箱和手机立即绑定

关于margin的问题

关于margin的问题

徐锦杰 2017-02-22 21:39:36
<!DOCTYPE html> <html> <head> <title>AAA</title> <style type="text/css"> div{ width: 800px; margin: 0 auto; background-color: #ccc; } h1{ margin: 100px border:1px solid red; } </style> </head> <body> <div><h1>AAAAAAAAAAAAAA</h1></div> </body> </html>我给h3设置margin,为什么div跟着h3往下移动了?h3左右外边距有的,上下外边距没有
查看完整描述

1 回答

?
徐锦杰

TA贡献6条经验 获得超1个赞

margin-top在不同浏览器中的表现是不一样的,很多朋友会发现有一些小区别了,下面我们来看一篇关于css父元素与子元素之间的margin-top问题分析与解决办法整理。

父元素的盒子包含一个子元素盒子,给子元素盒子一个垂直外边距margin-top,父元素盒子也会往下走margin-top的值,而子元素和父元素的边距则没有发生变化。 
 
html代码:

<div class="box1"> 
<div class="box2"></div> 
</div>

css样式:

.box1{height:200px;width:200px;background:gray;} 
.box2{height:100px;width:100px;background:gold;margin-top:50px;}

解决方法:

1、修改父元素的高度,增加padding-top样式模拟(padding-top:1px;常用) 
2、为父元素添加overflow:hidden;样式即可(完美) 
3、为父元素或者子元素声明浮动(float:left;可用) 
4、为父元素添加border(border:1px solid transparent可用) 
5、为父元素或者子元素声明绝对定位


在某些浏览器中,当给层内元素设置margin-top时,层内元素并没有margin,而是父层出现了margin-top,这往往让人很费解吧。。

解决办法有:

1.给父层添加:overflow:hidden;
2.给父层添加:border除none以外的属性
3.给父层添加:padding-top代替margin-top的效果。


查看完整回答
1 反对 回复 2017-02-23
  • 学习js
    学习js
    这是做什么,自问自答?
  • 街角疯
    街角疯
    我经常会遇到这样的问题,今儿看到你的方法豁然开朗!谢谢!
?
无敌大熊熊

TA贡献10条经验 获得超3个赞

你div都没高度,它的高度就是相当于h标签撑起来的,
查看完整回答
反对 回复 2017-02-23
  • 徐锦杰
    徐锦杰
    没高度也应该被子元素盒子的margin外边距撑开吧,网上找到个答案说是在不同浏览器中的表现问题,贴在楼下了
?
StupidFox

TA贡献4条经验 获得超2个赞

margin:100px;的意思是上下左右的margin都是100px,你想上下没有只有左右,应该是margin:0 100px; 你h1标签是在div内部的,相当于div里面的内容,你把h1的margin设置了以后,相当于增大了div里面的内容,自然你看见的div也跟着增大移动了
查看完整回答
反对 回复 2017-02-22
  • StupidFox
    StupidFox
    增加的是你设的边框的大小吧,你可以去了解下盒子模型。 div的height=内容+padding+margin+boder
?
人要成功必先疯

TA贡献1条经验 获得超0个赞

top bottom left right margin- 加上面的,设置上下左右边距
查看完整回答
反对 回复 2017-02-22
  • 徐锦杰
    徐锦杰
    看下3楼我放了图,为什么实时视图就变了
  • 人要成功必先疯
    人要成功必先疯
    手机版看不清。在浏览器里面F12调试一下,看看你h1的边距是什么样的。
?
不告诉你ID

TA贡献2条经验 获得超0个赞

不太明白   你在说什么   你只给h1标签设置了CSS样式   然后第十二排哪里少了一个分号

查看完整回答
反对 回复 2017-02-22
  • 徐锦杰
    徐锦杰
    看下3楼我放了图,为什么实时视图就变了
  • 徐锦杰
    徐锦杰
    不应该会被h1的margin撑高么,如果我加了height,div跟h1的顶部也是重合的
?
徐锦杰

TA贡献6条经验 获得超1个赞

58ada6800001197205000132.jpg

58ada68000013b0d05000130.jpg

如图,图二是实际的样子

查看完整回答
反对 回复 2017-02-22
  • 1 回答
  • 0 关注
  • 2249 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信