CSS文本裁剪

对于单行文本裁剪:

span {
    text-overflow:ellipsis;
    white-space:nowrap;
    overflow:hidden;
    display:block;
}

对于多行文本裁剪:

  1. 在文本容器上定义 CSS Flexbox 属性 display: -webkit-box;

  2. 定义要显示的文本行数 -webkit-line-clamp: 4;

  3. 添加 -webkit-box-orient: vertical;

  4. 使用 overflow: hidden; 属性

p {   
   display: -webkit-box;   
   -webkit-line-clamp: 4;   
   -webkit-box-orient: vertical;     
   overflow: hidden; 
}

在使用时有两种方法:

方法一:

// HTML 部分
<span v-if="text.length <= 1" class="single-line-text">
  {{ text }}
</span>

<p v-else class="multi-line-text">
  {{ text }}
</p>


/** CSS 部分 **/
.single-line-text {
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
  display: block;
}

.multi-line-text {
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

方法二:

两者可以结合使用,在只有单行文本时,使用方法一;在多行文本时,使用方法二。条件判断就是通过传的参数大小:

/** 这里的 linesNum 就是我文本的行数 **/
@mixin trim($linesNum: null){
   @if $linesNum!== null {
      display: -webkit-box;
      -webkit-line-clamp: $linesNum;
      -webkit-box-orient: vertical; 
      overflow: hidden;
   }
   @else{
      text-overflow: ellipsis;
      white-space: nowrap;
      overflow: hidden;
      display: block;
   }
}

在调用时,进行传参:

p {
  // 调用 mixin,并传递参数---行数4
  @include trim(4);
}
span {
  // 调用 mixin,不传递参数
  @include trim();
}
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

低保和光头哪个先来

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值