解决图片底部间隙问题

如图所示


当容器不设置宽高时, 加入 img 标签后会自动撑开
那么问题来了, 为什么图片底部为什么会有一点间隙而不是100%填充容器呢?
其实间隙产生的三大元凶是 "幽灵空白节点"、line-height 和 vertical-align 属性
幽灵空白节点 即: 一个宽度为0, 表现如同普通字符的看不见的 "节点"
我们插入一个内容为 "x", 背景为红色的 "span" 标签 (图片左下角)
可以发现, 图片的底部是和 "x" 的基线对齐的, 这也是行内元素的默认对齐方式

  • 解决方法有很多, 比如
    • 图片块状化. 可以一口气干掉 "幽灵空白节点"、line-height 和 vertical-align
    • 容器 line-height 足够小. 只要半行间距小到字母x的下边缘位置或者再往上, 自然就没有了撑开底部间隙高度空间了. 比如: 容器设置 line-height: 0;
    • 容器 font-size 足够小. 此方法要想生效, 需要容器的 line-height 属性值和当前 font-size 相关, 如 line-height: 1.5; 或者 line-height: 150% 之类; 否则只会让下面的间隙变得更大, 因为基线位置因字符x变小而往上升了
    • 图片设置其他 vertical-align 属性值. 间隙的产生原因之一就是基线对齐, 所以我们设置 vertical-align 的值为 top、middle、bottom 中的任意一个都是可以的
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 目录 vertical-align一、vertical-align基本:二、vertical使用环境:三、vert...
    白璞1024阅读 4,336评论 0 51
  • 1. 前言 前端圈有个“梗”:在面试时,问个css的position属性能刷掉一半人,其中不乏工作四五年的同学。在...
    YjWorld阅读 10,141评论 5 15
  • 2015年10月20日 17:18阅读 23删除 《小王子》真的是我最喜欢的一本书,读了一遍又一遍,每一个阶段读起...
    叁叁33阅读 3,265评论 0 4
  • 根据淘宝上的销量总结出了以下几种防雾霾口罩 ①3M口罩 下面为3M口罩的详细分类(1):N95系(十倍以下,无限...
    大鹏的环保生活阅读 4,086评论 0 2
  • 纯分享,无广告植入,无品牌歧视,单纯的分享一切美好的事物和可以变美的事情。 从高中开始,痘痘这个问题一直有在困扰着...
    小花啦朵朵阅读 1,755评论 0 1