img 图像底部留白的原因以及解决方法

有时候,我们在添加图片img标签后并没有给该标签设置magrin属性的margin-bottom值,在有些浏览器中打开就会出现图像底部留白,为什么为造成这个原因?下面就来进行分析:由于img元素默认为inline元素,而inline元素的vertical-align属性的默认值为baseline文字基线对齐,正好图片底部的留白就是baseline和bottom之间的距离。最后就给大家分享一下针对该问题的解决方法。

1.把图片设置为块级元素

我们都知道图片img标签默认为内联(inline)元素,把img标签设置为块元素就可以解决底部留白问题。

如:img{display:block;}

2.设置图片的垂直对齐方式

相信很多小伙伴对vertical-align这个属性有种很模糊的概念,和text-align属性作用的对象易混淆:首先text-align是设置或检索对象中文本的对齐方式(左、中、右);vertical-align则是用于指定元素(inline元素)的上下垂直对齐方式(顶部、中间、底部、基线)。再回到刚刚这个问题,我们通过给图片添加垂直对齐方式来解决底部留白。

如: img{vertical-align:top}   (vertical-align值根据具体情况来规定:top、middle、botom)

3.设置父元素的文字大小为0

如:img的父元素为div,那么只需要给div添加一个font-size属性并设置值为0即可。但是此方法会让父元素div中的其他子元素继承font-size属性,导致文字无法显示,这样就会出现一些隐性错误,那么再针对性的给需要的子元素单独添加font-size属性。

4.给父元素添加overflow属性

如果父元素规定了固定的宽高,图片大小就会跟随父元素而定,则可以给父元素添加overflow属性:overflow:hidden ;

5.设置图片的浮动或者定位属性

给图片设置浮动(float)或者定位(position)属性也能够解决地不留白问题,原理和方法一类似,就是通过添加 float  或 position 属性来改变display属性,被隐式变为块级元素了。

注:使用浮动的话最后要清除浮动

6.取消图片标签和其父元素之间的空格

由于浏览器会解析空格,故可以通过消除空格来解决问题,但是这个方法我们一般推荐,因为这样会使页面代码更加混乱,排版不清晰

原文地址:https://www.cnblogs.com/zsp-1064239893/p/10987825.html

时间: 2024-10-13 20:24:18

img 图像底部留白的原因以及解决方法的相关文章

coreseek常见错误原因及解决方法

coreseek常见错误原因及解决方法 Coreseek 中文全文检索引擎 Coreseek 是一款中文全文检索/搜索软件,以GPLv2许可协议开源发布,基于Sphinx研发并独立发布,专攻中文搜索和信息处理领域,适用于行业/垂直搜索.论坛/站内搜索.数据库搜索.文档/文献检索.信息检索.数据挖掘等应用场景,用户可以免费下载使用 本文为大家整理了coreseek/sphinx中文检索引擎的常见问题和解决方法,感兴趣的同学参考下. Coreseek 是一款中文全文检索/搜索软件,以GPLv2许可协

解析Win8小键盘灯不亮的原因及解决方法      

相信不少用户安装win8.1系统后发现,每次电脑开机小键盘灯都不亮,导致无法使用小键盘,需要手动按Num lock键才能打开数字小键盘输入.虽然,问题不大,但每次都要重复这样的动作感觉很烦.有没有办法解决这个问题呢?其实,只需要修改注册表就能搞定. 按"win+R"快捷键打开运行对话框,输入"regedit"命令,打开注册表编辑器,依次找到"HKEY_USERS→.DEFAULT→Control Panel→Keyboard",将其右边的&quo

Hyper-V虚拟机启动时报“账户没有足够的权限打开VHD文件”原因及解决方法

前段时间,准备做一套Exchange Server 2010仿真环境,用于后期企业内各项变更及平台上线时测试工作,由于需要准备的服务器较多,一台一台装虚机,感谢非常费时间,所以想到,做一个模版来快速完成虚拟机部署工作,大概的过程我想大家也有做过,就是装一台Hyper-V虚机,然后把VHD硬盘文件拷贝出来,分别替换所有建好没有系统的虚拟机硬盘,看似简单,但是在实际操作时发现,模版硬盘没有被识别?各种报错,如下图所示: 当看到上图所示这些报错时,很不理解,已经将这台机器的VHD文件指向了新拷入的模版

关于MySQL错误 2005 - Unknown MySQL server host 'localhost' (0) 原因及解决方法

今天在外面开navicat for mysql的时候,怎么也连不上自己本机上的数据库,一直显示2005 - Unknown MySQL server host 'localhost' (0): 错误代码的意思即无法连接上主机localhost.可能是由于没有联网造成的:于是将连接属性里的 '主机名或IP地址' 改成127.0.0.1即回送地址后,就可以连接上了.上百度搜了下,navicat里的一些功能应该是要联网的,而localhost是需要DNS解析后才会是127.0.0.1的,所以才会导致这

使用 ADOX 将 Table 添加到 Catalog 时报“类型无效”的原因和解决方法

http://blog.csdn.net/kfhzy/article/details/6020283 http://blog.csdn.net/kfhzy/article/details/6020545 李维的代码,原来链接的是MS SQL,改成ACCESS后,报 类型无效 错误 原因 除了 adDBTimeStamp 这样的 明显不支持的数据类型外,一般的,也有区别,adVarChar 在ACCESS里是adVarWChar procedure TfrmCreateTable.btnCreat

php教程之php空白页的原因及解决方法

php中出现空白页的原因及解决方法汇总. 很多程序员在进行php开发的时候都遇到过出现空白页的请,综合分析来说,在php编程中出现空白页面可能是由以下几个原因造成的: 1.逻辑错误逻辑错误是最难排除的,从表面上看,也许代码是合法的,是正规的,可运行起来却不是预料之中的.很多php教程中均有提及这方面的内容.为什么呢?也许是编写者想得不够全面,毕竟人是人,计算机是计算机,计算机不可能完全按照人的思路去运行脚本.一个比较好的调试方法,就是使用注释符“/* */”,注释掉一些代码,观察运行情况,以此来

Java并发编程:Java ConcurrentModificationException异常原因和解决方法

Java ConcurrentModificationException异常原因和解决方法 在前面一篇文章中提到,对Vector.ArrayList在迭代的时候如果同时对其进行修改就会抛出java.util.ConcurrentModificationException异常.下面我们就来讨论以下这个异常出现的原因以及解决办法. 以下是本文目录大纲: 一.ConcurrentModificationException异常出现的原因 二.在单线程环境下的解决办法 三.在多线程环境下的解决方法 若有不

Nginx 502 Bad Gateway 错误的原因及解决方法

http://my.oschina.net/zhouyuan/blog/118708 刚才在调试程序的时候,居然服务器502错误,昨天晚上也发生了,好像我没有做非常规的操作. 然后网上寻找了下答案, 把一些原因及解决方法汇总一下,以防生产环境下的502  会有好多种情况出现502错误,下面我们分情况来说一下. 一.fastcgi缓冲区设置过小 出现错误,首先要查找nginx的日志文件,目录为/var/log/nginx,在日志中发现了如下错误. 2013/01/17 13:33:47 [erro

TI CC2540 USB CDC Serial Port驱动安装失败原因及解决方法

买了款具有iBeacon基站功能的USB串口适配器,设备是基于TI公司CC2540芯片的. 一般来说,安装这设备的驱动就像我们用无线鼠标那样,插入USB接口后windows就自动安装了,但是新买的这设备没有,足足弄了好几天(win7 32位,msdn版),才发现是windows update自动更新被我关闭的原因. 驱动安装失败症状如图1,设备管理器里多了个感叹号,手动安装则提示“已找到该设备的驱动程序软件,但在试图安装它时遇到错误,系统知不道指定软件” 图一: 安装失败 进入控制面板--win