去除img下方的空白(vertical-align:middle)——原理
代码如下:一个简单的div装在一个img中,

然而在预览时却发现这种情况

也就是说img下方会无缘无故出现一个空隙。然后你发现,只要给img元素加上一个属性
vertical-align:middle 就解决了问题!!!

所以这是为什么呢?
首先我们应该知道img是一个行内块元素,而行内块元素的默认对齐方式则是基线对其,下面通过我们熟悉的文字对齐来解释说明一下

像上图一样,图中文字的对其方式就是基线对齐,不过我们也会发现这样的话文字和底部会有一段距离,

而图片就相当于是其中的x,他的最底部对齐的是基线,所以当line-height到达一定高度时下方的距离就会存在。
针对上面的问题有如下解决方法
1、而当你设 div的line-height:0 时也可以解决问题,或者font-size:0也是可以的
2、当然你设置图片的margin-bottom也可以解决,不过会影响你div中的布局
3、当我们设置vertical-align为top bottom middle时则使得其不再相对基线对其而是相对于顶部或中部对齐,这样就不会产生间距了,而一般布局都是居中对齐,所以用middle时较多。
去除img下方的空白(vertical-align:middle)——原理的更多相关文章
- What is Vertical Align?
https://css-tricks.com/what-is-vertical-align/ ************************************************* CSS ...
- iOS(Swift)学习笔记之去除UINavigationBar下方横线
本文为原创文章,转载请标明出处 // 去除UINavigationBar下方横线 navigationController.navigationBar.shadowImage = UIImage() ...
- 如何解决div里面img图片下方有空白的问题?
空白产生原因: 图片默认的vertical-align是baseline,(元素放置在父元素的基线上,也就是xx下边距) 一个inline-block元素,如果里面没有inline元素,或者overf ...
- js去除字符串的前后空白
使用gravatar生成邮箱的头像时需要对邮箱地址哈希化,其中需要去除邮箱地址的首尾空白,查找了一些资料,总结一下 使用 js 提供的函数 trim() trim() 方法会删除一个字符串两端的空白字 ...
- CSS - 去除图片img底侧空白缝隙
1. 图片底部有空隙 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...
- CSS font-size: 0去除内联元素空白间隙
我们在编写HTML标签的时候,通常会使用换行,缩进来保证代码的可读性.同时,在编写CSS样式的时候,也会需要把一些元素设置为inline或inline-block.这样一来,有时在页面中会出现意外的空 ...
- 去除inline-block之间的空白
做一个水平排列的导航通常有以下几种布局: 1.给一个浮动. 2.设置display为inline. 3.设置display为inline-block. 但要追求代码量最少的话,设置为inline元素或 ...
- 前端知识点回顾之重点篇——CSS中vertical align属性
来源:https://www.cnblogs.com/shuiyi/p/5597187.html 行框的概念 红色(line-height)为行框的顶部和底部,绿色(font-size)为字体的高度, ...
- 浏览器兼容CSS代码:按钮文字垂直居中(input button text vertical align)
经过测试的浏览器:IE6, IE7, IE8, IE9, Firefox, Chrome, Safiri, Maxthon 按钮的HTML代码: <input id="btn_comm ...
随机推荐
- [C++] 空间配置器——allocator类
1.new和delete有一些灵活性上的局限:new把内存分配和对象构造组合在了一起:delete将对象析构和内存释放组合在了一起. 2.当分配一大块内存时,我们通常计划在这块内存上按需构造对象, ...
- Windows server 2008 快速搭建域环境
之前根据网上的教程搭建,然后出现了很多问题,最后摸索出了一个比较稳妥一点的方法. 对于选系统这里,虽然上一篇文章已经说过了,这里也再强调一下,我使用的是08的系统,使用其他系统的暂不做评价,使用08系 ...
- 在vscode中配置python环境
1.安装vscode和python3.7(安装路径在:E:\Python\Python37): 2.打开vscode,在左下角点击设置图标选择setting,搜索python path,在该路径下选择 ...
- java自学小测试 九九乘法表
public class Ninenine { public static void main(String[] args) { for(int i=1;i<=9;i++){ for(int j ...
- SPSS学习笔记参数检验—两配对样本t检验
目的:检验两个有联系的正态总体的均值是否存在显著差异. 适用条件:有联系,正态总体,样本量要一样.一般可以分为一下四种: ①同一受试对象处理前后的对比:如对于糖尿病人,对同一组病人在使用新治疗方法前测 ...
- 利用Python进行数据分析:【Matplotlib】
一.简单介绍Matplotlib 1.Matplotlib是一个强大的Python绘图和数据可视化的工具包2.安装方法:pip install matplotlib 3.引用方法:import mat ...
- 玩转 SpringBoot 2 快速整合拦截器
概述 首先声明一下,这里所说的拦截器是 SpringMVC 的拦截器 HandlerInterceptor.使用SpringMVC 拦截器需要做如下操作: 创建拦截器类需要实现 HandlerInte ...
- 在创建activiti5..22所需的25张表时 ,所用的方法和遇到的问题。
最近在学习关于activiti流程设计的相关内容,首先第一步就需要了解25张activiti相关的表,具体的每张表的含义 请自行百度. 这里讲一下 用java代码生成所需要的25张表,很简单: pub ...
- uC/OS-III 时间管理(二)
时间管理就是一种建立在时钟节拍上,对操作系统任务的运行实现时间上管理的一种系统内核机制. 常用以下五个函数: OSTimeDly() OSTimeDlyHMSM() OSTimeDlyResume() ...
- golang 你所不知道的 log 和 fmt
直接点说,就是由于fmt 是线程不安全的, 如果你在多协程场景下使用fmt打印信息可能会得到乱序的结果 就是说 不按代码里的顺序打印. 下面看示例 代码示例 golang fmt 多线程 乱序: fu ...