【发布时间】:2017-02-23 01:27:36
【问题描述】:
我试图理解为什么删除 HTML 图形标签下方的空格需要 hack。
在 Chrome 中,删除默认的“vertical-align:baseline”是可行的,但是当你在 CSS 中添加它时,它就不行了。我能想出使它工作的唯一技巧是在图像周围添加一个包装器 div,然后设置“line-height: 0”。
<figure style="margin: 0;">
<div style="line-height: 0;">
<img src="http://wellnesscounselingmilwaukee.com/wp-content/uploads/2015/07/4-Nature-Wallpapers-2014-1.jpg">
</div>
</figure>
有什么想法吗?一点意义都没有。
这是 JSFiddle 为那些无法复制的人提供的屏幕截图。我在最新版本的 Chrome 和 Safari 上对此进行了测试。这是与 table 完全相同的问题,人们通常为此使用不同的 hack。屏幕截图没有显示我未选中“line-height: 0;”的部分顺便说一句,以防你想知道。如果将代码复制并粘贴到 JSFiddle 中,则必须取消选中它才能看到问题。
这是您不必修改的链接。
https://jsfiddle.net/415s3amz/1/
更新:
如果您可以选择设置要显示的图像:block;它也将解决问题。如果没有,请使用 line-height: 0;根据测试,这似乎证明了这与图像元素的默认行为有关。但是,取消选中垂直对齐:基线仍然没有意义,但添加相同的 CSS 不起作用。
【问题讨论】:
-
为什么不对
figure元素添加margin: 0;? -
请发minimal reproducible example。我发布您的代码时看到的只是jsfiddle.net/xs7jxL60
-
我添加了一个随机图像,所以现在您可以粘贴到 JSFiddle 上。 “边距:0;”不起作用。
-
为了证明这一点,我还将添加margin:0并删除figcaption。在 JSFiddle 中执行检查元素,您将在图像下方的图底部看到空间。
-
margin:0似乎有效......“html图形标签下方的空格”是什么意思?