我有一些非常简单的标记,我希望用“...”
来截断长文本
.topRow div {
display: inline-block;
}
#name {
max-width: 70%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
<div class="topRow">
<div id="edit">
<div id="pre">Before -</div>
<div id="name">Some long text that should get truncated when it passes the max width</div>
<div id="post">- After</div>
</div>
</div>
小提琴:http://jsfiddle.net/xyPrv/3/
问题在于,当我将overflow: hidden
添加到div时,它会使文本跳起几个像素并且与其周围的其余文本不一致。
造成这种垂直运动的原因是什么?无需手动将文本向下推(使用position: relative; and top: 5px
),如何干净地将文本对齐?
答案 0 :(得分:21)
.topRow div{
display: inline-block;
vertical-align:middle;
}
答案 1 :(得分:1)
如果你改变了这个:
.topRow div {
display: inline-block;
}
到此:
.topRow div {
float:left;
}
然后就是你想要的。
答案 2 :(得分:0)
或仅使用:
div {
width: 100%;
line-height: 1.2em;
height: 3.6em;
background-color: gainsboro;
overflow: hidden;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
}