项目中 单行文本过长或多行文本时,用省略号代替并悬停时提示全部文本内容

本文介绍了如何使用CSS实现单行和多行文本的省略显示,以及在Element-UI框架中遇到的问题和解决方案。当文本过长时,通过`overflow`、`white-space`和`text-overflow`属性可以实现省略号效果。如果结合`el-tooltip`做悬停提示,需确保样式应用在正确的位置。同时,提供了多行文本省略的实现方法,并给出了使用Element-UI的`el-tooltip`组件展示完整文本的例子。
项目中,经常会遇到单行文本过长或是多行文本显示的冗长,可以使用省略号 '...' 代替

一、单行文本时

// overflow:hidden ; //溢出的部分隐藏 
// white-space: nowrap ; //文本不换行
// text-overflow:ellipsis ; //ellipsis:文本溢出显示省略号(...);clip:不显示省略标记(...),而是简单的裁切
style=" display: block; overflow:hidden; white-space: nowrap ; text-overflow:ellipsis ; -o-text-overflow:ellipsis ;"
此方式是可行的,但是我之前适用的时候遇到了一个问题,就是我在 el-form-item 里面写样式,虽然实现了但是效果并不好,每次都需要刷新当前页,很不方便。当时百度了很多也没有找到什么原因,后面才知道是因为我用了 tooltip 做悬停展示的原因,导致style 样式没有对内容起作用。如果没有 tooltip 做悬停展示时,可以将样式写在 el-form-item 中,效果时一样的。

错误代码:

<el-col :span='12'>
  <el-form-item style=" display: block; overflow:hidden; white-space: nowrap ; text-overflow:ellipsis ; -o-text-overflow:ellipsis ;">
    <label slot="label">权益包适用范围:</label>
    <el-tooltip :content="applyRange" placement="top">
      <span>{{ applyRange == null?'--':applyRange }}</span>
    </el-tooltip>
  </el-form-item>
</el-col>

正确代码:

<el-col :span='12'>
  <el-form-item>
     <label slot="label">权益包适用范围:</label>
     <el-tooltip :content="applyRange" placement="top">
       <span style=" display: block; overflow:hidden; white-space: nowrap ; text-overflow:ellipsis ; -o-text-overflow:ellipsis ;">{{ applyRange == null?'--':applyRange }}</span>
     </el-tooltip>
   </el-form-item>
 </el-col>

二、多行文本时

// -webkit-line-clamp: 1;  数字 1 表示的是第一行,可以根据需要自行设置
style="width: 100%; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; display: -webkit-inline-box;"

多行文本和单行文本是一样的,这里我就不做代码展示了,同样,如果适用 tooltip 做悬停展示就把 style 样式放在 内容展示里面,否则是可以放在 el-form-item 里面的。

三、悬停时提示全部文本内容,我使用的是 element-ui 插件,代码如下:

 <el-form-item
     label="xxx:"
     >
    <el-tooltip :content="单行文本过长或多行文本时,用省略号代替并悬停时提示全部文本内容" placement="top">
        <span style="width: 100%; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; display: -webkit-inline-box;"> 单行文本过长或多行文本时,用省略号代替并悬停时提示全部文本内容 </span>
    </el-tooltip>
 </el-form-item>

content 绑定的是展示的内容
placement 是展示内容的位置
如果内容少,悬停时位置靠后,可以把 width 属性删除,这样看起来就比较舒服了

代码示例中使用的是多行文本省略的方法(-webkit-line-clamp: 1 ; 值为 1 做了单行省略),也可以使用上述单行省略的方法。

评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值