文本超出显示省略符号...

2020-12-16  本文已影响0人  LO_0668

一行的写法

效果如下图


一行的效果图

代码如下

.one {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
<view class="one">这里是一行的文字,有很多内容我需要超出部分显示成省略号</view>

一行的实现比较简单,首先控制文本不换行,然后超出部分隐藏,最后设置文本溢出的样式。

多行的写法

效果图如下


多行的效果图

代码实现如下

.introduction {
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
}
<view class="introduction">这里是多行的文字,有很多内容我需要超出部分显示成省略号,这里是多行的文字,有很多内容我需要超出部分显示成省略号,这里是多行的文字,有很多内容我需要超出部分显示成省略号</view>

多行的实现就稍微麻烦了一点,会需要使用到一些结合属性。
display:-webkit-box 将对象转为弹性伸缩盒子模型
-webkit-box-orient:vertical 设置或检索伸缩盒对象的子元素的排列方式
然后在通过-webkit-line-clamp:3 设置文字需要显示的行数
不过这只方式会有兼容性问题,在不是webkit的浏览器上可能会失效

通过伪元素来实现

效果图如下


兼容性比较好的写法的效果图

代码实现如下

.stable {
  position: relative;
  line-height: 1.4em;
  height: 4.2em;
  overflow: hidden;
}
.stable::after {
  content: '...';
  font-weight: bold;
  position: absolute;
  bottom: 0;
  right: 0;
  padding: 0 20rpx 0 0;
  background: #ffffff;
}
<view class="stable">
  这里是多行的文字,有很多内容我需要超出部分显示成省略号,这里是多行的文字,有很多内容我需要超出部分显示成省略号,这里是多行的文字,有很多内容我需要超出部分显示成省略号
</view>

这种写法就兼容性比较好,主要的实现思路就是控制显示区域的宽高,然后通过伪元素在右下角显示...。不过有缺点,就是控制不好,可能会有半个文字显示半个文字被遮住。所以在使用的时候可以根据自己项目的实际情况做选择。

上一篇下一篇

猜你喜欢

热点阅读