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

jba*_*bey 14 html css overflow alignment

我有一些非常简单的标记,我希望长文本被截断为"..."

.topRow div {
  display: inline-block;
}

#name {
  max-width: 70%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)

小提琴:http://jsfiddle.net/xyPrv/3/

在此输入图像描述

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

是什么导致这种垂直运动?无需手动将文本向下推(带position: relative; and top: 5px),如何干净地将文本对齐?

Ano*_*non 21

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

#name {
    max-width: 70%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
Run Code Online (Sandbox Code Playgroud)

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

  • 这仍然无法将文本与没有设置溢出属性时的文本对齐 (3认同)
  • 或者任何版本的`vertical-align`,无论是顶部,中部还是底部,取决于一个人的要求. (2认同)
  • 将 `vertical-align: middle;` 放在 3 个子 div 上可以解决这个问题,但是您是否知道为什么 `overflow: hide;` 首先会导致这些对齐问题? (2认同)
  • 请注意,“vertical-align: middle”可能会偏离中心,在这种情况下,您可以使用以下内容:“vertical-align: -25%”。该百分比取决于字体、行高甚至可能更多因素,因此最容易通过实验来确定。为什么“overflow:hidden”会扰乱垂直对齐,这超出了我的理解。 (2认同)