在测试css新单位vmin和vmax的时候,发现图片刚好占满视口高度的时候,右边竟然出现了滚动条。下面简单分析一下:
1. 案例复现
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
*{
margin: 0;
padding: 0;
}
body{
box-sizing: border-box;
border: 1px solid green;
}
img{
box-sizing: border-box;
border: 1px solid red;
width: 100vmin;
height: 100vmin;
}
</style>
</head>
<body>
<img src="https://picsum.photos/2000/3000"/>
</body>
</html>
2. 出现空白的原因
参考这篇文档,由于<img>默认是inline的,所以默认是vertical-align: baseline,知道了问题,解决起来就很简单了。
3. 解决方案
方案一: 修改vertical-align的值
img{
vertical-align: middle;
}
方案二: 将img元素变为block
img{
display:block;
}
注意:方案将img元素变为块元素,可能会导致布局上的改变。