首页 > 其他分享 >纯CSS实现文本展开收起

纯CSS实现文本展开收起

时间:2022-11-10 15:13:49浏览次数:69  
标签:checked text +. content exp 收起 文本 CSS

提到 CSS 状态切换,大家都能想到 input type="checkbox" 吧。这里我们也需要用到这个特性,首先加一个 input,然后把之前的 button 换成 label ,并且通过 for 属性关联起来!

<div class="wrap">
  <input type="checkbox" id="exp">
  <div class="text">
    <label class="btn" for="exp">展开</label>
    浮动元素是如何定位的
  正如我们前面提到的那样,当一个元素浮动之后,它会被移出正常的文档流,然后向左或者向右平移,一直平移直到碰到了所处的容器的边框,或者碰到另外一个浮动的元素。
  </div>
</div>

这样,在点击 label 的时候,实际上是点击了 input 元素,现在来添加两种状态,分别是只显示 3 行和不做行数限制

.exp:checked+.text{
  -webkit-line-clamp: 999; /*设置一个足够大的行数就可以了*/
}

兼容版本可以直接设置最大高度 max-height 为一个较大的值,或者直接设置为 none

.exp:checked+.text{
  max-height: none;
}

这里还有一个小问题,“展开”按钮在点击后应该变成“收起”,如何修改呢?
有一个技巧,凡是碰到需要动态修改内容的,都可以使用伪类 content 生成技术,具体做法就是去除或者隐藏按钮里面的文字,采用伪元素生成!

<label class="btn" for="exp"></label><!--去除按钮文字-->
.btn::after{
  content:'展开' /*采用content生成*/
}

添加 :checked 状态

.exp:checked+.text .btn::after{
  content:'收起'
}

兼容版本由于前面的省略号是模拟出来的,不能自动隐藏,所以需要额外来处理

.exp:checked+.text .btn::before {
    visibility: hidden; /*在展开状态下隐藏省略号*/
}

查看完整代码及体验效果【codepen多行展示收起】

标签:checked,text,+.,content,exp,收起,文本,CSS
From: https://www.cnblogs.com/wentai/p/16877074.html

相关文章

  • 京东商品评论情感分析|文本数据预处理
    本文爬取了十款热销手机的文本评论数据后,首先对文本评论数据做文本预处理,文本评论数据中存在大量的无价值信息,引入无用的文本数据,对其作情感分析,显然没有价值,得出的文本挖掘......
  • ModStartBlog v6.1.0 界面显示优化,富文本升级
    系统介绍ModStart是一个基于Laravel模块化极速开发框架。模块市场拥有丰富的功能应用,支持后台一键快速安装,让开发者能快的实现业务功能开发。系统完全开源,基于Apache2.......
  • 京东商品评论情感分析|文本数据获取
    本文以小米京东旗舰店平台作为数据来源,爬取小米京东旗舰店十款热门手机的当前在线评论文本数据5110条数据,抽取小米10的手机评论数据做情感分析,对评论数据进行文本去重、机械......
  • 一文详解DevExpress的HTML & CSS模板如何实现集合渲染
    DevExpressWinForm拥有180+组件和UI库,能为WindowsForms平台创建具有影响力的业务解决方案。DevExpressWinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office......
  • 爱心代码 HTML/CSS3
     <!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN"><HTML><HEAD><TITLE>Love</TITLE><METANAME="Generator"CONTENT="EditPlus"><METANAME="Author"......
  • live sass compiler ,VSCode插件自动将sass解析成css
     https://www.jianshu.com/p/95af6b6c6490{      // 是否生成对应map "liveSassCompile.settings.generateMap": true, "liveSassCompile.settings.aut......
  • HTML----常用标记(文本、文字、超链接与锚点连接)
    1.标记的分类单标记:只有一个标记既是开始,也是结束,如:图片、视频双标记:又开始有结束,成对出现的,主要作用就是描述标记的内容,如:div2.文本、文字<font></font......
  • ckeditor富文本实现导入word功能
    ​ 1.编辑器修改(可选)1.1在 ueditor/config.json 中添加代码块    /* 上传word配置 */    "wordActionName":"wordupload",/* 执行上传视频的action......
  • CSS 如何实现五彩斑斓的“呼吸字”?速度拿去装杯!
    什么是五彩斑斓的“呼吸字”??不多哔哔,先用【码上掘金】来看看实现效果:​​代码片段​​谁不喜欢这种金光闪闪、有动效的字?(实际颜色可调,按你喜欢)用来做网页头部文字,效果拉起来......
  • 开放的样式文件,皕杰报表支持自行设置css文件
    我们在浏览器上浏览报表的时候,报表显示的样式实质上是css文件控制的。皕杰报表中,css样式文件在资源文件夹report_res/skin下,包含query.css、table.css、toolbar.css、fillin......