解决图片底部间隙问题

简介: 如图所示当容器不设置宽高时, 加入 img 标签后会自动撑开那么问题来了, 为什么图片底部为什么会有一点间隙而不是100%填充容器呢?其实间隙产生的三大元凶是 "幽灵空白节点"、line-height 和 vertical-alig...

如图所示


当容器不设置宽高时, 加入 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 中的任意一个都是可以的
相关文章
|
存储 Linux 索引
【Linux】—— 详解软硬链接
【Linux】—— 详解软硬链接
434 0
|
存储 测试技术 Linux
添加E1000网卡进行测试,只有VMXNET3性能的四分之一
添加E1000网卡进行测试,只有VMXNET3性能的四分之一
|
供应链 JavaScript 安全
SBOM概念和Java生成方式
SBOM概念和Java生成方式
|
2月前
|
人工智能 运维 自然语言处理
|
2月前
|
人工智能 弹性计算
阿里云权益中心2026最新福利:免费AI大模型、云服务器特惠、39元建站和免费域名活动
2026阿里云权益中心上线:个人38元/年享云服务器,企业199元/年u1实例;学生领300元无门槛券;开通百炼免费获7000万tokens;AI先锋企业享1300元抵扣金;超160款产品免费试用,建站39元送域名,普惠上云!
241 4
|
3月前
|
云安全 人工智能 算法
以“AI对抗AI”,阿里云验证码进入2.0时代
三层立体防护,用大模型打赢人机攻防战
1615 10
|
数据采集 监控 数据可视化
BI工具在数据分析和业务洞察中的应用
BI工具在数据分析和业务洞察中的应用
431 11
|
前端开发 JavaScript IDE
构建高效的前端开发环境
本文探讨了如何构建一个高效的前端开发环境,包括选择合适的开发工具、优化工作流程和提高代码质量的方法。通过本文的指导,读者可以更好地提升前端开发效率,快速构建出高质量的网站和应用程序。
|
Kubernetes Linux 开发者
深入探索容器化技术——Docker 的实战应用
深入探索容器化技术——Docker 的实战应用
251 7
|
Linux Android开发 iOS开发
深入探索Android与iOS的多任务处理机制
在移动操作系统领域,Android和iOS各有千秋,尤其在多任务处理上展现出不同的设计理念和技术实现。本文将深入剖析两大平台在后台管理、资源分配及用户体验方面的策略差异,揭示它们如何平衡性能与电池寿命,为用户带来流畅而高效的操作体验。通过对比分析,我们不仅能够更好地理解各自系统的工作机制,还能为开发者优化应用提供参考。