消除 inline-block 出现4px 间距的方法 和 vertical-align

 


 

在火狐F12上

如上图,两个 inline-block 行内块级元素并排在一起就会出现这个间距。就像文字连在一起的时候也有个默认字间距(latter-spacing)

会产生间距的原因是我们在写html标签的时候换了行或者加了空格

解决方法:

(1)改变 html 结构

    不换行:

   不加空格:

 

但是如果html结构太多,我们这种做法会累死自己。

所以我们可以用css 改

 

(2)在父元素上设置 font-size 为 0;  (心态崩了,写了一大段不小心刷新就回到这里了,没了。。。)

 

  

这样间距就没了。

缺点:父元素设置了字体为0后,子元素的字体大小也为0了。所以用这个方法子元素就需要重新设置字体的大小。

 

(3)在父元素上设置 letter-spacing 为 -4px

缺点也是一样的,会作用于子元素

(4) 设置margin 负边距 来解决。

 

说完inline-block 就来说和它息息相关的 vertical-align

简单来说,这个属性控制的是行内元素在垂直方向上的对齐方式。

父元素内只有一个行内元素时,它是不起作用的,因为它找不到其他基友,所以没有基线。

我们在上面的例子中加一个图片上去

在没有文字的时候,它的基线就是margin-bottom了。看不出来是把。我们给img加margin-bottom

这样看基线就是margin-bottom。

 

这时候我们来设置图片的 vertical-align

 

基线就变成下面那样了。

我们再来设置 橙色方块的 vertical-align

效果:

基线就是中间了

(保存一下压压惊!!)

 

我们上面说了无文字的时候,现在来说有文字的时候,有文字的时候就是以最后一行文字为基线

结构是这样的

 

效果:

 

还有一种,就是flex布局  属性 align-items 设置为 baseline 时

也是以文字为基线对齐,这时候是第一行文字为基线

posted @ 2018-01-24 13:05  尾巴33  阅读(291)  评论(0编辑  收藏  举报