<div class="thumb" style="width: 500px;">
<img src="imgs/1.jpg" style="width: 100%;height: auto"/>
</div>
在网页上thumb的高度会比里面的img高度多出几像素,请教下这是为啥?
<div class="thumb" style="width: 500px;">
<img src="imgs/1.jpg" style="width: 100%;height: auto"/>
</div>
在网页上thumb的高度会比里面的img高度多出几像素,请教下这是为啥?
基线问题,img是行内块元素,在块元素里默认有3px或者4px空白(其实就是和文本的基线对齐不管有没有文本)
解决:设置图片display:block或者img {
vertical-align:top;
}
这是因为浏览器本身对img标签的渲染问题,img标签本身是行内元素(主要原因)
所以有一种简单有效的解决办法(推荐)
img {
display:block;
}
或者可以尝试为父级div设置font-size:0
(不推荐)
也可以采用浮动(float),原因是浮动会将这个元素转换为块级元素
当然还有为div定高并且设置overflow:hidden的解决办法(太不优雅了,强烈不推荐)
font-size:0;
vertical-align:0;
vertical-align:top;
这三个我试试啦 为什么还是不行呢 ?
display:block是OK的;
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
div{
width:200px;
}
img{
width:100%;
/*vertical-align: top;*/
/*vertical-align:0; */
/*display:block;*/
font-size:0;
}
</style>
</head>
<body>
<div>
<img src="img/1.jpg">
</div>
</body>
</html>
10 回答11.6k 阅读
2 回答3.1k 阅读✓ 已解决
2 回答4.2k 阅读✓ 已解决
5 回答2.2k 阅读
3 回答2.7k 阅读✓ 已解决
3 回答1.6k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
div是块级标签,img是行级标签,你把img的display设置能block就好了。