【问题记录】使用ellipsis时的问题和控制文字n行显示(webkit-box方法)

使用ellipsis时的问题和控制文字n行显示(webkit-box方法)

1、使用ellipsis时的问题

@mixin ellipsis() {
  text-overflow: ellipsis;
  overflow: hidden;
  white-space: nowrap;
}

相信许多人都经常会使用上面这种方法让文字在一行显示,多余的用省略号代替

但是这样做的前提一定要是外层盒子有确定的宽度,如果没有(如flex: 1自动撑开的情况或是根本没有设置过宽度),这一行就会将整个盒子给撑开,达不到想要的效果

所以解决方式就可以:根据其余margin、padding、页面宽度等信息算出这个盒子具体应该占的宽度,直接进行设置即可

2、让文字在n行显示

这里用到了弹性布局的-webkit-line-clamp属性来设置行数

@mixin ellipsis2($line) {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: $line;
  // 以上三行比较重要
  white-space: normal;
  overflow: hidden;
  text-overflow: ellipsis;
  word-break: keep-all;
}
posted @ 2020-09-04 16:56  TRY0929  阅读(355)  评论(0编辑  收藏  举报