这个功能每次写起来都很蛋疼(这里指多行的情况)
原因很简单,-webkit-line-clamp 这个属性没有被 css 作为标准属性使用,
每次用就感觉比较别扭,并且根据情况的不同,就算用了 -webkit-line-clamp 也不一定能完美实现

纯 CSS 实现

最简单的方式,IE 不兼容,其他主流游览器都 OK
PS:但是问题是,在省略号后面不能跟东西,通常需求是展开/折叠按钮等

<div class="any">
  假设这里有很多的内容
</div>
/* 内心OS:这都是些个什么玩意... */
.any {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

clamp-js

无依赖

vue-line-clamp

vue组件,用起来没问题,但是展开/折叠逻辑需要自行实现,有点麻烦

vue-line-clamp-q

我基于 vue-line-clamp 的基础上做了优化
将折叠逻辑整合到了内部,使其使用起来更加简单