css样式[三行文字省略号查看更多]

本文介绍了一种使用CSS实现文本省略号及多行溢出隐藏的效果,通过具体样式设置展示了如何限制元素内的文本显示行数,并在超出部分使用省略号表示。适用于网页中对文章或评论等内容进行预览展示。

这里写图片描述

/*  三行文字 省略号    */
.lookmoretop{
        overflow : hidden;  
        text-overflow: ellipsis;  
        display: -webkit-box;  
        -webkit-line-clamp: 3;  
        -webkit-box-orient: vertical;  
        width: 300px;  
        margin-top: 20px;
        margin-left: 10px;
        padding: 10px;
        border-radius: 25px 25px  0px 0px;
        background-color: rgba(204, 204, 204, 0.3);
        height: 68px; 
}
/* 查看更多 */
.lookmorebottom{
    border-radius: 0px 0px  25px 25px;
    background-color: rgba(204, 204, 204, 0.3);
     width: 320px; 
     margin-left: 10px;
     text-align: center;
     color: rgba(14, 14, 212, 0.61) 
}
在 Vue2 项目中实现列表文字超过三行显示省略号并添加“查看更多”按钮的功能,可以通过结合 CSS 的文本截断特性以及 Vue 的条件渲染和事件绑定来完成。 ### 实现思路 1. **CSS 实现文本三行省略**: 使用 `-webkit-line-clamp` 属性来限制文本显示的行数,并通过 `display: -webkit-box` 和 `overflow: hidden` 来实现多行省略效果。 2. **Vue 控制展开/收起状态**: 通过 `data` 中的变量来控制文本是否展开,并绑定点击事件切换状态。 3. **动态渲染按钮**: 根据文本长度和是否展开状态来决定是否显示“查看更多”按钮。 ### 示例代码 #### HTML 模板部分 ```html <template> <div class="list-item" :class="{ expanded: isExpanded }"> <p class="text" :ref="setTextElement"> {{ text }} </p> <button v-if="shouldShowButton" @click="toggleExpand" class="toggle-button"> {{ isExpanded ? '收起' : '查看更多' }} </button> </div> </template> ``` #### CSS 样式部分 ```css .list-item { position: relative; max-height: 6em; /* 假设每行高度为2em,显示3行 */ line-height: 2em; overflow: hidden; } .list-item.expanded { max-height: none; } .text { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; text-overflow: ellipsis; } .toggle-button { margin-top: 8px; cursor: pointer; background: none; border: none; color: blue; text-decoration: underline; } ``` #### JavaScript 逻辑部分 ```javascript <script> export default { data() { return { isExpanded: false, shouldShowButton: false, textElement: null }; }, props: { text: { type: String, required: true } }, mounted() { this.checkTextOverflow(); }, methods: { setTextElement(el) { this.textElement = el; }, checkTextOverflow() { if (this.textElement) { // 判断是否需要显示按钮(即文本是否超出3行) const lineHeight = parseInt(getComputedStyle(this.textElement).lineHeight, 10); const maxHeight = 3 * lineHeight; this.shouldShowButton = this.textElement.scrollHeight > maxHeight; } }, toggleExpand() { this.isExpanded = !this.isExpanded; } } }; </script> ``` ### 功能说明 - **CSS 多行省略**:使用了 `-webkit-line-clamp` 来限制文本显示为 3 行,超出部分用省略号表示。 - **动态按钮显示**:通过 `checkTextOverflow` 方法判断文本是否超出容器高度,若超出则显示“查看更多”按钮。 - **展开/收起功能**:点击按钮时切换 `isExpanded` 状态,控制容器是否展开,从而显示完整文本。 该方案结合了 CSS 的文本截断能力与 Vue 的响应式状态管理,能够高效地实现所需功能。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值