关于font-size设置在整个模块中的问题

关于font-size设置在整个模块中的问题

http://img1.sycdn.imooc.com//climg/5d5f4a360001194b05760581.jpg

在消除了所有边距的情况下,上方图片与下方文字中间仍有一些留白,为什么此时设置font-size:0就可以消除这一状况呢?为什么给整个图片加下方文字的模块设置font-size,明明只有后面的p标签内有文字,给整个模块设置font-size为什么还能影响非文字的图片部分间距?

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

你好同学,图片的间隙不是因为margin导致的,它是行内元素的一个特殊现象。原理的话,和vertical-align有关系。同学现阶段可能对于原理理解起来比较难,老师给你讲解你先作为了解,等以后知识层面丰富了,再回顾就好理解了。

行内元素的vertical-align 的默认值是 baseline。这是一个西文排版的概念。所以写一段字母更好理解,如下:

可以看到,出现在baseline下面的是g的那个尾巴,这就是导致为什么图片默认会有一个间隙。即使只有图片没有文字,只要图片的vertical-align 默认值是 baseline,就会存在这个空白间隙。

http://img1.sycdn.imooc.com//climg/5d5f90bf000165c504490370.jpg

这个空白就相当于与文字的一个默认排版造成的,所以设置 line-height 设置为0,或者font-size:0 都可以清除间隙。或者最直接的方式改变图片的vertical-align的值,例如让图片与文字底部对齐。

http://img1.sycdn.imooc.com//climg/5d5f92840001074209310213.jpg

祝学习愉快,望采纳。

慕桂英2021900 2019-08-23 15:00:29

同学你好,不知道你是使用什么标签的布局的。

我说一下自己解决这个问题的办法,我是使用dl,dt,dd进行布局的,当我把图片放到dt中的时候图片将容器下方撑大了4个像素,解决办法是给图片设置img{display: block;}或者设置dt的高度与图片等高(div同理)都可以解决缝隙的问题。

至于你疑问我觉得是不是设置了font-size后使img变成一个区块标签了或者将两个标签之间空格消除了(个人倾向于后者)?

PS:经验交流,仅作参考

  • 提问者 VermouthYan #1
    是的,就是为什么会存在缝隙然后用了font-size:0;之后又消除了。用的div布局然后给每一个添加了左浮动
    2019-08-23 15:05:19
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师