我想将图像打包成html DIV
,因为我希望这个窗口的大小完全可扩展,所以我希望将DIV
的宽度设置为百分比如下:
HTML
<div id="wrapper">
<img src="http://openclipart.org/people/netalloy/rally-car.svg" />
</div>
CSS
#wrapper {
position: absolute;
width: 50%;
}
#wrapper img {
width: 100%;
}
图像应确定其容器的高度。这是因为图像宽度设置为100%,并相应地计算图像高度,保持正确的宽高比。
结果在jsfiddle:http://jsfiddle.net/lorenzopolidori/5BN4g/15/
上可见我的问题是:
DIV
比内部图像高5px?令人惊讶的是,这种情况发生在Chrome(21.0.1180.89),Firefox(15.0.1)和IE8中,而IE7正确呈现它,使DIV
的高度与图像的高度相匹配。
答案 0 :(得分:1)
好的,摆弄,我找到了一个很好的解决方案:
#wrapper img {
display: block;
width: 100%;
border: 1px dashed red;
}
从默认inline
显示更改为block
显示会立即消除line-height
问题。
这种方法在语义上也是正确的,因为在这种情况下我们真正想要的是包含在DIV
中的单个图像,其中没有任何其他元素,因此{{1需要通过将图像显示为块来完全消除。
适用于所有主流浏览器:http://jsfiddle.net/lorenzopolidori/5Cpf2/3/
答案 1 :(得分:1)
................
您好现在在vertical-align:top
throw css
img tag
就像这样
#wrapper img {
width: 100%;
border: 1px dashed red;
vertical-align:top; // add this line
}
答案 2 :(得分:1)
检查出来:
这是一个行高问题: - )
你需要:
#wrapper {
width: 60%;
background-color: #aaa;
margin: 50px auto;
line-height:0;
}
#wrapper img {
width:100%;
border: 1px dashed red;
box-sizing:border-box;
}
我使用了盒子大小来确保图像的宽度不会溢出容器
答案 3 :(得分:0)
我认为您应该设置align属性以强制浏览器正确显示img标记。
<div id="wrapper">
<img align="center" src="http://openclipart.org/image/800px/svg_to_png/74557/rally-car.png" />
</div>
答案 4 :(得分:0)
答案 5 :(得分:0)
您的问题是图像 - 确切地说是<img>
标记 - 是内联元素。您需要做的就是在图像上设置display: block
,并且额外的填充消失。 Demo