我有以下代码,它允许红色从一个元素显示。为什么是这样。我原以为a元素只会扩展到内容的大小,但它看起来比它大一点。请参阅此处的代码集http://codepen.io/anon/pen/soqEz。
HTML
<a href="#"><img src="http://placehold.it/150x150" /></a>
CSS
a{
background: red;
margin-bottom:0;
padding-bottom:0;
border-bottom:0;
}
img {
margin-bottom:0;
padding-bottom:0;
border-bottom:0;
}
编辑:我看到下面的答案......但是任何人都可以解释为什么空间在那里(我的意思是它是块级元素......是什么它的目的首先)...而不是试图摆脱它。感谢
答案 0 :(得分:7)
默认情况下,img
元素为inline
。 inline
个元素充当文本,默认为vertical-align: baseline
。这意味着图像的底部与文本的底部对齐。请注意,小写的p或g位于垂直文本对齐的底部之下。您可以通过添加vertical-align: bottom
或display: block
来修复此问题。
答案 1 :(得分:3)
这样做是因为它是一个内联元素。更改显示类型
img {
display:block;
}
答案 2 :(得分:2)
因为默认情况下图像是inline
元素。将display: block
添加到您的img
规则中,然后查看。
答案 3 :(得分:0)
在您的情况下,您需要添加display:block,但是要添加到image标签而不是link标签。 添加
img
{
display:block;
}