CSS溢出隐藏导致文本对齐问题

时间:2013-10-14 14:24:28

标签: html css alignment overflow

我有一些非常简单的标记,我希望用“...”

来截断长文本

.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/

enter image description here

问题在于,当我将overflow: hidden添加到div时,它会使文本跳起几个像素并且与其周围的其余文本不一致。

造成这种垂直运动的原因是什么?无需手动将文本向下推(使用position: relative; and top: 5px),如何干净地将文本对齐?

3 个答案:

答案 0 :(得分:21)

.topRow div{
display: inline-block;
vertical-align:middle;
}

试试这个。 http://jsfiddle.net/V79Hn/

答案 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;
}