前言
在学习CSS的过程中,我们经常会遇到图片底侧存在空白缝隙的问题。这篇文章提供了解决方案。
代码示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
div {
border: 1px solid black;
}
img {
width: 200px;
}
</style>
</head>
<body>
<div>
<img src="images/jin.jpg" alt="">
</div>
</body>
</html>
得到的结果图如下(一些私心๑•̀ ਊ•́):
我们可以看到图片底部与边框之间隔了一定空隙,接下来我们就来分析这个情况出现的原因以及如何解决这个bug。
一:出现原因
图片默认的对齐方案是基线对齐(baseline)。我们添加一行文字看看效果:
我们可以 看到,图片是与文字的基线对齐的。这就是底部缝隙出现的原因。
二:主要解决方案
主要解决方案有两种:
1.给图片添加vertical-align: middle|top|bottom(提倡使用的)
代码示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
div {
border: 1px solid black;
}
img {
vertical-align: bottom;
width: 200px;
}
</style>
</head>
<body>
<div>
<img src="images/jin.jpg" alt="">
</div>
</body>
</html>
结果如下图:
图片底部的空隙消失了 。
2.把图片转换为块级元素display: block
代码示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
div {
border: 1px solid black;
}
img {
display: block;
width: 200px;
}
</style>
</head>
<body>
<div>
<img src="images/jin.jpg" alt="">
</div>
</body>
</html>
结果如图:
我们可以看到底部的空隙也消失了。 因为块级元素没有vertical-align的属性,不会有基线对齐的方式了。
总结
这篇文章介绍了一个常见的bug:图片底部空隙问题。
我们发现出现问题的原因是由于元素默认的对齐方式为基线对齐vertical-aligh: baseline。
解决方法:
1. 给图片添加vertical-align: middle|top|bottom
2. 给图片添加display: block