首页 新闻 会员 周边 捐助

css margin问题

0
悬赏园豆:15 [已解决问题] 解决于 2014-09-10 09:33

遇到一个为奇怪的问题,margin说是设置块级元素的外边距,个人理解为,非浮动和绝对定位情况下,元素和周围元素直接的距离,不知道是不是正确

请看下面的html内容,里面2处用了margin,第二处的margin很好理解,但是第一处的却很让我费解,我的本意是让111所在的div和上边有一定的间距,也就是说红色区域上面的白色部分也应该是浅灰色的,但是无奈事实却不是那样,我并不是想找其他的解决办法,我是想知道为什么?

 

111
222
bird man的主页 bird man | 初学一级 | 园豆:4
提问于:2014-09-09 13:59
< >
分享
最佳答案
0
 1 <html>
 2 
 3 <head>
 4    <title>演示</title>
 5 <style type="text/css">
 6 * {margin:0;padding:0}
 7 .a {width:100px;height:200px;border:1px solid #000;margin-left:30px}
 8 .b {width:100px;height:400px;background:red;margin-left:30px;}
 9 .first,.second {width:50px;height:150px;background:yellow}
10 .first {margin:20px}
11 </style>
12 </head>
13 
14 <body>
15 
16    <div class="a">我是div:a</div>
17    <div class="b">
18       <div class="first">我的子元素1</div>
19       <div class="second">我是子元素2</div>
20    </div>
21 
22 </body>
23 
24 </html>

我是在2345浏览器下测试的

原因如下:

父元素div:b的第一个子元素first,如果父元素div:b没有加上有效地border或者padding;而给子元素first加margin;会使得子元素first的margin——top值当成父元素的margin-top值。

收获园豆:15
wstpa | 初学一级 |园豆:151 | 2014-09-09 18:33

太感谢了

bird man | 园豆:4 (初学一级) | 2014-09-10 09:32
其他回答(5)
0

试试padding-top.

晓菜鸟 | 园豆:2594 (老鸟四级) | 2014-09-09 14:16

其实我上面已经说了,我并不是要找其他的解决方法

支持(0) 反对(0) bird man | 园豆:4 (初学一级) | 2014-09-09 14:21

@bird man: 你可以把代码贴出来,不知道你具体怎么写的。

支持(0) 反对(0) 晓菜鸟 | 园豆:2594 (老鸟四级) | 2014-09-09 14:41

@晓菜鸟: 那不是截图...可以查看代码

支持(0) 反对(0) bird man | 园豆:4 (初学一级) | 2014-09-09 14:42
0

margin值是相对于兄弟之间的间距值,包含1111的的元素上面没有兄弟元素,兄弟之间用margin,父子之间用padding

djdliu | 园豆:136 (初学一级) | 2014-09-09 15:37
0

我刚试了一下,应该浏览器兼容性问题,在IE下是你要的结果,在chrome里是你现在的结果。

GisClub | 园豆:330 (菜鸟二级) | 2014-09-09 15:47
0

如楼上,应该是兼容性。具体原因,功力不够,暂无法解释。

幻天芒 | 园豆:37207 (高人七级) | 2014-09-09 16:24
0

不知道你CSS怎么写的,贴出来看看

Albert Fei | 园豆:2102 (老鸟四级) | 2014-09-09 16:39
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册