css实现超出文本溢出用省略号代替

本文介绍如何使用CSS实现单行或多行文本溢出时显示省略号的方法,包括适用于WebKit浏览器内核的-webkit-line-clamp属性及通过伪元素实现的技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、单行

直接上代码:

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

效果如下:
这里写图片描述

二、多行

下次更新,拜拜

——————————–割—— 3月20日更新 ——————————–

原理1:
不考虑兼容性的,适用于WebKit浏览器内核的。
css代码:
     .box {
            width: 400px;
            height: 65px;
            margin: 100px auto;
            border: 1px solid #ccc;
            display: -webkit-box;
            -webkit-box-orient: vertical;
            -webkit-line-clamp: 3; /*截取第三行*/
            overflow: hidden;
        }
html代码:
<div class="box">
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Amet, beatae dolore eius in modi placeat quos tempore!
    Assumenda commodi corporis distinctio fuga nam odio, perferendis quia quisquam rem, tempore ut!
    Lorem ipsum dolor sit consectetur elit adipisicing. Amet, beatae dolore eius in modi placeat quos tempore!
    Assumenda commodi corporis distinctio fuga nam odio, perferendis quia quisquam rem, tempore ut!
</div>
效果:

这里写图片描述

PS:听说可以用jQuery兼容,请百度。

——————————————–割——————————————–

原理2:
容器设置溢出隐藏;
后置内容生成一个内容为“...”的伪元素,绝对定位到指定宽高的容器右下角,实现多行溢出点点点。
css代码:
 .box {
            width: 400px;
            height: 100px;
            margin: 100px auto;
            border: 1px solid #ccc;
            position: relative;
            line-height: 20px;
            overflow: hidden;
        }

        .box::after {
            content: "...";
            position: absolute;
            bottom: 0;
            right: 0;
            padding-left: 10px;
            background: -webkit-linear-gradient(left, transparent, #fff 55%);
            background: -o-linear-gradient(right, transparent, #fff 55%);
            background: -moz-linear-gradient(right, transparent, #fff 55%);
            background: linear-gradient(to right, transparent, #fff 55%);
        }
html代码:
<div class="box">
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Amet, beatae dolore eius in modi placeat quos tempore!
    Assumenda commodi corporis distinctio fuga nam odio, perferendis quia quisquam rem, tempore ut!
    Lorem ipsum dolor sit consectetur elit adipisicing. Amet, beatae dolore eius in modi placeat quos tempore!
    Assumenda commodi corporis distinctio fuga nam odio, perferendis quia quisquam rem, tempore ut!
</div>
效果:

这里写图片描述

over

### 使用 Element Plus 实现单行文本溢出并用省略号替代 为了实现单行文本溢出并用省略号替代的效果,在前端开发中通常会结合 CSSHTML 来完成这一功能。对于基于 Vue.js 的组件库如 Element Plus,虽然其本身并没有直接提供专门针对此效果的属性设置,但是可以通过自定义样式轻松达成目标。 下面是一个简单的例子来展示如何利用 `el-tooltip` 组件配合原生 CSS 属性达到所需效果: ```html <template> <div class="text-container"> <!-- el-tooltip 提供了一个优雅的方式来处理鼠标悬停时显示完整内容 --> <el-tooltip :content="longText" placement="top-start"> <span class="ellipsis-text">{{ longText }}</span> </el-tooltip> </div> </template> <script setup lang="ts"> import { ref } from 'vue'; const longText = ref('这是一个非常长的文字串,当宽度不足以完全展现全部字符的时候将会自动截断,并以省略号代替...'); </script> <style scoped> .text-container { width: 200px; /* 设置容器固定宽度 */ } .ellipsis-text { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: inline-block; max-width: 100%; } </style> ``` 上述代码片段通过组合使用 `white-space`, `overflow`, `text-overflow` 这些 CSS 属性实现了文字超出指定区域后的隐藏以及添加省略号的功能[^1]。 同时借助于 `el-tooltip` 可以为用户提供一种友好的交互方式去查看被裁剪掉的内容。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值