出现空白原因
例如,一个div中包含了一个img,div没有设置高度,应该是img有多高,就会撑多高,给div设置一个边框查看效果,发现图片下方多了一点空白。
原因:img是行内块元素,默认文字基线对齐,即vertical-align: baseline; 所以图片下方有空白
代码示例:
<!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: 2px solid pink;
}
img {
width: 200px;
height: 200px;
}
</style>
</head>
<body>
<div>
<img src="images/pic2.jpg" alt="">
</div>
</body>
</html>
页面效果:
原因:默认图片是与文字基线对齐,添加文字测试:
代码示例:
<!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: 2px solid pink;
}
img {
width: 200px;
height: 200px;
}
</style>
</head>
<body>
<div>
<img src="images/pic2.jpg" alt="">What a wonderful day!
</div>
</body>
</html>
页面效果:
消除空白方法
设置vertical-align非基线
vertical-align:bottom/middle/top;
代码示例:
<!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: 2px solid pink;
}
img {
width: 200px;
height: 200px;
vertical-align: bottom;
}
</style>
</head>
<body>
<div>
<img src="images/pic2.jpg" alt="">What a wonderful day!
</div>
</body>
</html>
页面效果:
将图片设置成块级元素:display: block;
因为块级元素没有vertical-align属性
<!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: 2px solid pink;
}
img {
display: block;
width: 200px;
height: 200px;
}
</style>
</head>
<body>
<div>
<img src="images/pic2.jpg" alt="">What a wonderful day!
</div>
</body>
</html>
页面效果:
推荐使用是一种方法,设置成块元素后,图片会独占一行