【发布时间】:2015-05-13 16:07:02
【问题描述】:
我想使用 text-overflow: ellipsis 来剪切一些太长的文本,但是我在使用 overflow:hidden 和 display:inline-block 时遇到了一些问题。
html:
<span class="text">
<span class="inner left">Click to add overflow</span>
<span class="inner right"> long text here</span>
</span>
<div class="bottom"></div>
css:
.text {
line-height: 50px;
font-size: 20px;
display: inline-block;
}
.right {
display:inline-block;
text-overflow: ellipsis;
width: 100px;
white-space: nowrap;
}
.overflow {
overflow: hidden;
}
javascript:
$('.text').on('click', function() {
$(this).toggleClass('overflow');
$('.right').toggleClass('overflow');
})
jsfiddle: http://jsfiddle.net/zhouxiaoping/knw7m5k2/2/
我的问题是:
当.text 有overflow:hidden 属性时,为什么.text 元素和.bottom 元素之间有2px 空白
为什么 .right 元素在溢出时不与左侧对齐:隐藏属性
- overflow:hidden 的作用是什么
我的问题不是如何解决它,而是弄清楚发生了什么
相关:Why is this inline-block element pushed downward?
真正的原因是:
'inline-block' 的基线是其在正常流中的最后一个行框的基线,除非它没有流入行框,或者它的 'overflow' 属性具有除 'visible 之外的计算值',在这种情况下,基线是底部边距边缘。
感谢大家的帮助
【问题讨论】: