实现行内块和文字垂直居中对齐

CSS的 vertical-align 属性使用场景∶经常用于设置图片或者表单(行内块元素)和字垂直对齐。
image.png
官方解释∶用于设置一个元素的 垂直对齐方式,但是它只针对于行内元素或者行内块元素有效。

语法∶
vertical-align : baseline | top | middle | bottom

描述
baseline 默认。元素放置在父元素的基线上。
top 把元素的顶端与行中最高元素的顶端对齐
middle 把此元素放置在父元素的中部。
bottom 把元素的顶端与行中最低的元素的顶端对齐。

image.png

例子

图片demo31.png

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <style>
  9. img {
  10. /* vertical-align: bottom; */
  11. /* vertical-align: baseline; */
  12. /* vertical-align: middle; */
  13. vertical-align: top;
  14. }
  15. </style>
  16. </head>
  17. <body>
  18. <img src="demo31.png" alt=""> aaaaaaaaaaa
  19. </body>
  20. </html>

效果图image.png

解决图片底部默认空白缝隙问题

bug:图片底侧会有一个空白缝隙,原因是行内块元素会和文字的基线对齐。
不过我的却不会出现这个bug,我也不知道为什么。

主要解决方法有两种:

  1. 给图片添加 vertical-align:middle | topl bottom 等。(提倡使用的)
  2. 把图片转换为块级元素 display: block;