关于font-size:0导致的vertical-align有差异产生的疑惑

在设计inline元素的时候会有个小小的空白,为了代码易读,不缩进html代码选择了font-size:0,但是正常不加font-size:0,设置vertical-align:text-top结果是这样的,和我预想一样:

clipboard.png

加了font-size:0,结果是这样的

clipboard.png

不知道什么原因,希望能得到大神指点,万分感谢


补充下,font-size在父类里设置为了0,但在.text设置为了12px,希望能够在浏览器试试,谢谢

APPENDIX:
#css
.support{
    width: 80%;
    margin: 0 auto;
    font-size:0;          //消除内联元素间隙
    border: 1px solid #ccc;
}
.icon{                   //图片font-size:0
    width:40px;
    height:40px;
    display:inline-block;
    vertical-align:text-top;
    margin-right:6px;
    background-size:40px 40px;
    background-repeat: no-repeat;
    background: url('xxx')
}
.text{
    font-size:12px;    //这里再次设置font-size:12px
    line-height: 40px;
}


#html
<div class="support">
    <span class="icon"></span>
    <span class="text">Text...</span>
</div>
阅读 3.9k
2 个回答

clipboard.png
你span给了行高,有没给它inline-block,所以你在控制台看的时候,之后灰色那么大,实际上他占据的大小是红色那么大.
text-top表现为元素和父级的content-area 对其

clipboard.png
加一个x看一下就知道了,本来是x和右元素基线对其,所以图标和x的content-area上边对其,就表现为差不多中间的位置.
你把font-size设为0,x基线对其就是和text文字下边缘对其,那图标和content-area对其不就是和text文字下边缘对其么.

clipboard.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题