视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
css的空隙(inline的坑)_html/css
2020-11-27 16:33:46 责编:小采
文档
好久没写东西了,最近有点忙,再加上自己在捣鼓一个video转gif的东西(github:传送门),是一个用node-webkit(mac版用atom-shell)做的一个桌面应用,也就没怎么写东西,不过刚好弄这东西的时候遇到了空隙的问题就来查查资料,讨论讨论,研究研究.....

先看下debug代码

      phantom 

只是普通的用div装一个img,然后让div比img多出1px(有点类似于边框),可是问题来了,上图:

很明显,黄色的部分是div的padding,可是下面的padding比较大.

解决的方法有3种(也就是我css注释掉的3行):

给父亲元素加上--

1:font-size:0;

或者给img元素加上--

2:vertical-align:bottom;

3:display: block;

但是,这是为什么?如果一般的猴子,肯定会用,能解决问题就行了,但是我们不是一般的猴子,我们是程序猿!!!

想来想去,既然font-size:0;能解决,应该和font有关.

为了解释为什么,我又切了2张图来辅助理解,上图:

第一张图,我用控制台来当量尺,移到div的padding一样大的时候,发现只有P的下面被挡道了,其他的好像距离控制台的空隙都一样大,所以我又截了第二张图,

vertical-align是用来设置基线的,font-size为0的时候,就不存在基线的差距,所以应该是基线搞定鬼~

一番之后发现,原来vertical-align的默认基线是Base Line,(所以p才会有一部分被挡道了).

写到这里,突然想起之前2个inline元素之间有空隙,也是给父亲元素加上font-size来解决的,而这次给img加上block也可以解决问题,说到底还是inline元素的锅~.所有的inline元素都有和文字一样具有字号和行高属性,所以img也会被基线影响到,这就是问题所在

下载本文
显示全文
专题