overflow:hidden

这是大家罕用的css属性。在工作过程中,遇到下列问题:
制作一个信息显示标签,如下图所示,一个标签蕴含一个icon和一段文字。

当初需要是:分支标签的文字过长时用省略号代替显示,于是给这个分支标签的div元素设置了:

    overflow: hidden;    max-width: 170px;    text-overflow: ellipsis;    white-space: nowrap;

试图让标签宽度超过170px时,显示省略号。然而却呈现了下图的状况:

这是为森呢????

通过查阅材料。发现原来是我为了让标签并列显示,给标签容器的div设置了display:inline-block。而overflow:hidden和display: inline-block一起应用时会造成baseline的挪动,所以高度就变得不一样了。
当inline-block元素的display不为visible的时候,其baseline为margin-box的下边界(如下图左侧元素),而左边的元素没有设置overflow:hidden,他的baseline为文字内容的基线。baseline对齐之后则呈现了这样的高度差。

通过设置两个标签的vertical-align为bottom(只有vertical的值不为baseline),就能够回到同一基线上。实现对齐。

参考文章:
CSS中vertical-align的默认值baseline的了解