使用此 HTML 标记:
<html>
<body>
<ul class="tag-list">
<li class="tag"><div class="tag-label">short tag</div><div class="tag-tail tag-count">1154353</div></li><!--no whitespaces between list items!!--><li class="tag"><div class="tag-label">A quite long long long long long tag</div><div class="tag-tail tag-active">5</div></li>
</ul>
</body>
而这个 CSS 规则:
.tag-list {
border:1px solid red;
}
.tag {
border:1px solid green;
display:inline-block;/*so that tags are lined up like words... */
margin-right: 0.5em;
margin-bottom: 0.5em;
white-space:nowrap; /* so that label & tail sub-divs are stuck all together */
height: 2em;
line-height: 2em; /* text is vertically centered */
}
.tag > div {
height: 100%;
display:inline-block; /*so that label&tail are lined up */
}
.tag-tail {
border:1px solid orange;
}
.tag-label {
border:1px solid blue;
overflow:hidden;
text-overflow:ellipsis;
max-width:10em; /* to generate a (text) overflow for the ellipsis*/
}
我在 Chrome 22.0.1229.94 中得到了预期的结果
但是在 Firefox 15.0.1 中,我得到了一个奇怪的结果(div.tag-tail
元素向下移动)!
您可以将 FF 和 Chrome 中的结果与此jsFiddle进行比较。
我知道将属性添加overflow:hidden;
到选择器/规则可以.tag-tail
解决问题,但我想了解为什么 FF 需要这样做,以及为什么在行为上有这种差异?
谢谢您的回答 !