多行文本展开收起(css)

本文介绍了如何使用CSS实现多行文本超出部分省略、按钮定位以实现文字环绕、状态切换、根据文本行数判断是否显示展开按钮等功能,并提供了完整的代码示例。

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

纯css来实现多行文本展开收起的效果。

1.实现文本超出部分省略

单行文本:

.text{
   width: 250px;
   overflow:hidden;
   text-overflow: ellipsis;
   white-space: nowrap;
} 

多行文本:

可以使用-webkit-line-clamp实现。

注意:这是一个不规范的属性,它没有出现在 CSS 规范草案中。

.text {
  display: -webkit-box;//必须结合的属性 ,将对象作为弹性伸缩盒子模型显示 。
  -webkit-line-clamp: 3;//用来限制在一个块元素显示的文本的行数
  -webkit-box-orient: vertical;//必须结合的属性 ,设置或检索伸缩盒对象的子元素的排列方式 。
  overflow: hidden;//超出部分隐藏
}

2.按钮定位(实现文字环绕效果)

添加一个button,利用浮动,先将按钮浮动定位到右下角,对content使用flex布局,添加一个伪元素实现文字环绕效果。

.btn{
  float: right;
  clear: both;
}
// 伪元素
.text::before{
  content: '';
  float: right;
  width: 0px;
  height: calc(100% - 16px);//动态高度
}

3.展开——收起 状态切换

将button换成label,通过for与checkbox关联

 <input type="checkbox" 
### UniApp 中多行文本展开收起功能实现 在 UniApp 中,可以通过动态控制 `text` 的显示高度来实现多行文本展开收起功能。具体来说,可以利用 CSS 样式中的 `line-clamp` 或者通过 JavaScript 动态设置样式属性的方式完成。 以下是基于 Vue.js 和 UniApp 的一种常见实现方式: #### HTML 结构 ```html <view class="content"> <view class="text" :class="{ &#39;show-more&#39;: isShowMore }">{{ textContent }}</view> <button @click="toggleText"> {{ isShowMore ? &#39;收起&#39; : &#39;展开&#39; }} </button> </view> ``` #### 数据绑定与逻辑处理 ```javascript export default { data() { return { textContent: "这是一段非常长的文字内容,用于演示如何在 UniApp 中实现多行文本展开收起功能。这段文字可能来自服务器或者本地定义。", isShowMore: false, // 控制是否展示全部内容 }; }, methods: { toggleText() { this.isShowMore = !this.isShowMore; // 切换状态 } } }; ``` #### 样式部分 ```css .text { display: -webkit-box; -webkit-line-clamp: 3; /* 设置最多显示几行 */ -webkit-box-orient: vertical; overflow: hidden; } .show-more { -webkit-line-clamp: unset; /* 取消行数限制 */ } ``` 上述代码实现了以下功能: 1. 默认情况下只显示三行文本[^1]。 2. 用户点击按钮后切换 `isShowMore` 状态,从而改变样式的 `-webkit-line-clamp` 属性,达到展开收起的效果[^2]。 此方案适用于大多数场景下的多行文本折叠需求。如果需要更复杂的交互效果(如动画过渡),还可以引入额外的库或自定义 CSS 动画。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值