标签导航:

字母数字同列文本居中显示,如何优雅地实现省略号效果?

CSS文本对齐及省略号显示的优雅解决方案

网页布局中,常需将字母和数字在同一行居中显示。但当文本超出容器宽度时,简单的居中方法和省略号效果可能失效,尤其在使用display: table-cell时。

例如,以下代码尝试居中显示并省略超出部分文本“wang11”:

<p>wang11</p>
p {
  display: table-cell;
  vertical-align: middle;
  width: 100rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

然而,当文本长度超过100rem,省略号无效。这是因为vertical-align: middle依赖于行高(line-height)与高度(height)匹配。display: table-cell使元素高度自适应内容,未明确指定高度,导致vertical-align: middle失效。

解决方案:调整垂直对齐和行高

将vertical-align改为top或bottom,并设置line-height等于容器高度。这确保文本始终位于容器顶部或底部,避免vertical-align: middle在高度不确定时的失效。即使文本超出,省略号也能正确显示。 修改后的CSS如下:

p {
  display: table-cell;
  vertical-align: top; /* 或 bottom */
  width: 100rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 100rem; /* 与容器高度一致 */
}

关键在于将line-height设置为与容器宽度相同的值(此处为100rem),确保文本垂直对齐正确,省略号功能正常。 请根据实际容器宽度调整100rem的值。