解决图片底部间隙问题

简介: 如图所示当容器不设置宽高时, 加入 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 中的任意一个都是可以的
相关文章
|
1月前
设置背景图像平铺和位置
设置背景图像平铺和位置。
31 5
|
3月前
|
前端开发 容器
css 【详解】—— 图片底部留有间隙(含解决方案)
css 【详解】—— 图片底部留有间隙(含解决方案)
110 0
|
3月前
|
JavaScript
ELEMENT-PLUES如何设计二级高亮样式,文字如何呈现高亮效果,如果字体出现不对齐的情况,侧边栏icon如何调位置,目录如何折叠,如何延迟动画播放,如何添加阴影,如何添加logo,在行内样式写宽
ELEMENT-PLUES如何设计二级高亮样式,文字如何呈现高亮效果,如果字体出现不对齐的情况,侧边栏icon如何调位置,目录如何折叠,如何延迟动画播放,如何添加阴影,如何添加logo,在行内样式写宽
|
3月前
|
JavaScript
Elementplus淡入淡出效果,头部顶栏如何设置文字隐藏效果,默认图标如何收缩,icons如何通过类进行替换,侧边栏如何添加阴影,右边如何设置高度,侧边栏如何设置阴影,如何让icon与文字
Elementplus淡入淡出效果,头部顶栏如何设置文字隐藏效果,默认图标如何收缩,icons如何通过类进行替换,侧边栏如何添加阴影,右边如何设置高度,侧边栏如何设置阴影,如何让icon与文字
|
5月前
如何实现按钮的图片在右边,文字在左边
如何实现按钮的图片在右边,文字在左边
75 0
|
前端开发
前端——背景图片显示以及悬浮状态下变色的情况
前端——背景图片显示以及悬浮状态下变色的情况
|
5月前
【推荐】实现跟随鼠标移动的浮动提示框、气泡框、Tip效果
【推荐】实现跟随鼠标移动的浮动提示框、气泡框、Tip效果
|
5月前
指定文字浮动区域,动起来的效果棒极了
指定文字浮动区域,动起来的效果棒极了
76 0
|
11月前
|
前端开发
CSS实现鼠标悬停图片向上浮动,放大,翻转
CSS实现鼠标悬停图片向上浮动,放大,翻转
276 0
|
前端开发 程序员
当鼠标光标放在一张图片上,如何显示另一张图片?
当鼠标光标放在一张图片上,如何显示另一张图片?
262 1