如何实现如下效果

图片描述
当文字超过两行时,显示省略号,当文字未超过两行时,不显示省略号,详细标签始终在文字后面

阅读 1.9k
3 个回答

只用 css 只能做到第一行超出自动省略号:

white-space: nowrap;
overflow: hidden;
text-overflow: ellipse

多行的话,可以用这个库:
https://github.com/josephschm...


楼下有人说 line-clamp 的,这个兼容性:

clipboard.png

<a href="">【详细】</a>

【1】css解决

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .txt{
            width: 200px;
            word-break: break-all;
            text-overflow: ellipsis;
            display: -webkit-box; /** 对象作为伸缩盒子模型显示 **/
            -webkit-box-orient: vertical; /** 设置或检索伸缩盒对象的子元素的排列方式 **/
            -webkit-line-clamp: 2; /** 显示的行数 **/
            overflow: hidden;  /** 隐藏超出的内容 **/
            
            /*1,word-break:break-all 例如div宽200px,它的内容就会到200px自动换行,
            如果该行末端有个英文单词很长(congratulation等),它会把单词截断,
            变成该行末端为conra(congratulation的前端部分),下一行为tulation(conguatulation)的后端部分了。
            2,word-wrap:break-word 例子与上面一样,但区别就是它会把congratulation整个单词看成一个整体,
            如果该行末端宽度不够显示整个单词,它会自动把整个单词放到下一行,而不会把单词截断掉的。*/
        }
    </style>
</head>
<body>
<p class="txt">溢出文字隐藏溢出文字隐藏溢出文字隐藏溢出文字隐藏溢出文字隐藏溢出文字隐藏溢出文字隐藏溢出文字隐藏</p>
</body>
</html>

【2】js判断字的个数

str = str.length > 50? str.substr(0,str.length-3) + '......':str

这个百度一下马上解决了吧。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题