首页 > 建站教程 > Div+Css >  img放在a、span等行内标签里底部出现多余白色空白撑不起来解决方法正文

img放在a、span等行内标签里底部出现多余白色空白撑不起来解决方法

首先,您可以运行下面的代码看下效果:


提示:您可以先修改部分代码再运行





通过上图,我们得到下面的结论:
    通过a标签的边框可以看出,图片底部出现了空白,并且a标签没有被图片撑起来,只有大概16像素的高度。

原因:
    其实非常的基本,因为当初设立标准的不是亚洲而是欧洲,inline 元素为了正确的显示 y j g 等带有尾巴的英文字母,会在底下留空,这要依据 font-size 去决定。

解决办法:
    1、将图片转换为块级对象

    设置img为“display:block;”。在本例中添加一组CSS代码:“#sub img {display:block;}”。

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

    设置图片的vertical-align属性为“top,text-top,bottom,text-bottom”也可以解决。如本例中增加一组CSS代码:“#sub img {vertical-align:top;}”。

    3、设置父对象的文字大小为0px

    在嵌套图片的行内元素中加入:“font-size:0;”可以解决问题。但这也引发了新的问题,在父对象中的文字都无法显示。就算文字部分被子对象括起来,设置子对象文字大小依然可以显示,但在CSS效验的时候会提示文字过小的错误。

    4、改变父对象的属性

    如果父对象的宽、高固定,图片大小随父对象而定,那么可以设置“overflow:hidden;”来解决。如本例中可以向#sub中添加以下代码:“width:88px;height:31px;overflow:hidden;”。

    5、设置图片的浮动属性

    在本例中增加一行CSS代码:“a img {float:left;}”。如果要实现图文混排,这种方法是很好的选择。

    6、取消图片标签和其父对象的最后一个结束标签之间的空格

    这个方法要强调下,在实际开发中该方法可能会出乱子,因为在写代码的时候为了让代码更体现语义和层次清晰,难免要通过IDE提供代码缩进显示,这必然会让标 签和其他标签换行显示,比如说dw的“套用源格式”命令。所以说这个方法可以供我们了解出现BUG的一种情况,具体解决方案的还得各位见招拆招了。