You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

white-space与webkit-line-clamp的CSS文本截断兼容问题求助

解决多行文本省略且不截断完整单词的问题

这可不是兼容性问题哦,是你加的white-space: nowrap和多行省略的核心机制冲突啦!

问题根源

你用的-webkit-line-clamp实现多行省略,依赖的是display: -webkit-box弹性盒布局,以及文本正常换行的逻辑。但white-space: nowrap会强制所有文本在一行显示,完全抵消了多行布局的效果,自然就只会显示一行了。

解决方法

直接去掉white-space: nowrap,再补充两个属性保证不截断完整单词,修改后的CSS如下:

.clinic-description {
  font-family: OpenSans, sans-serif;
  font-weight: 600;
  -webkit-font-smoothing: antialiased;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  text-align: center;
  margin-bottom: 16px;
  /* 新增:保证仅在单词边界换行,不截断完整单词 */
  word-break: keep-all;
  overflow-wrap: normal;
}

原理说明

  • word-break: keep-all:让文本只在单词的自然分隔点(比如空格、连字符)换行,不会把一个完整的单词拆成两半显示。
  • overflow-wrap: normal:默认值,不允许在单词内部强制换行,进一步确保完整单词不被截断。

小提醒:如果遇到像dolore12345678这种没有空格的长串字符,浏览器没办法识别它的单词边界,还是会被截断。如果要处理这种极端情况,可以把overflow-wrap改成break-word,但这样会允许长串字符内部换行,你可以根据实际需求调整。

内容的提问来源于stack exchange,提问作者Franco Echevarría

火山引擎 最新活动