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

设置display:block后,margin失效,如何解决

56542f370001ce9003240073.jpg

设置display:block后,第三张图上移,如何解决?
为什么会存在这种问题呢?


demo地址在这里

56542f380001f3fe03070075.jpg

正在回答

4 回答

你问的这个问题蛮不错的。我觉着我有必要回答一下。第二张图片包裹在一个div之内。

这个间隙是img和div之间的间隙。为什么会有这么一个间隙。img本身是inline-block 水平的元素,因而会受到line-height与vertical-align(而vertical-align 默认是baseline对齐)的作用。而img,block 化之后,便不再受到line-height和vertical-align的影响。

解决方法这个存在的间隙的方法,如果img不设置block的话,可以尝试设置其父元素的,1.)可以尝试把 line-height设置足够小。2.)可以把vertical-align的对齐方式设置为bottom,middle,top。3.)font-size设置为0.

篇幅以及精力有限,并未展开这个间隙存在的具体原因。但是张鑫旭老师对这个现象有非常详尽的博文,你可以搜一下。

3 回复 有任何疑惑可以回复我~
#1

hey自然

http://www.zhangxinxu.com/wordpress/2015/08/css-deep-understand-vertical-align-and-line-height/
2015-12-09 回复 有任何疑惑可以回复我~
#2

hjh399 提问者

非常感谢!
2015-12-09 回复 有任何疑惑可以回复我~

那个间隙还是不怎么懂

0 回复 有任何疑惑可以回复我~

为什么我引用外部链接<link href="css/index.css" rel="stylesheet" type="text/css"/>设置元素的margin-top不起作用而在元素上直接设置<link href="css/index.css" rel="stylesheet" type="text/css"/></div>就起作用呢,这一般是什么原因造成的

0 回复 有任何疑惑可以回复我~

display:block???你说的应该是绝对定位后下面飘上去是吧?

0 回复 有任何疑惑可以回复我~
#1

hjh399 提问者

不是,点http://www.imooc.com/code/4403这个demo,点击第一个按钮,第三张图片就上移了
2015-11-24 回复 有任何疑惑可以回复我~
#2

colorado 回复 hjh399 提问者

我晕哟,设置了定位属性后就脱离了文档流啊
2015-11-25 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

设置display:block后,margin失效,如何解决

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信