css之多行文本输出

需求

本小白拿着设计师给的带标注的设计稿,看到简介标注为只能显示3行文本,多于3行显示3行,本准备采取字符串截取蒙混过关(不能原谅的事情是对自己没有要求,简直没有下限),后查看了网上的解决方案,特此分享。

思路

现在假设想要显示的文本行数是N行,首先设定文本容器的max-height = N 乘以 line-height,第N行显示的文本为部分文本 + ... + 展开全部。设置文本容器的字体颜色为背景色,伪元素before和after的content都为文本内容。借助伪元素before显示(N - 1)行元素,z-index = 1(在文本容器、before伪元素、after伪元素、[展开全部]按钮中确保before伪元素z-index最大)。after伪元素的padding-right宽度为[展开全部]按钮的宽度(单位为em),text-indent = (N - 1) * [展开全部]按钮的宽度(如何理解缩进? 通过设置after伪元素的padding-right为第N行的[展开全部]按钮留位置,由于第1行、第2行...第(N - 1)行都少显示[展开全部]按钮宽度的字体,所以,为了确保伪元素after在第N行中显示正确,需要向左缩进(N - 1) 乘以 [展开全部]按钮的宽度)

效果图

完整代码

<div class="desc" title="Jennifer Joanna Aniston (born February 11, 1969)[1] is an American actress, producer, and businesswoman.[2] The daughter of Greek actor John Aniston and American actress Nancy Dow, Aniston gained worldwide recognition for portraying Rachel Green on the popular television sitcom Friends (1994–2004), a role which earned her a Primetime Emmy Award, a Golden Globe Award, and a Screen Actors Guild Award. The character was widely popular during the airing of the series and was later recognized as one of the 100 greatest female characters in United States television">Jennifer Joanna Aniston (born February 11, 1969)[1] is an American actress, producer, and businesswoman.[2] The daughter of Greek actor John Aniston and American actress Nancy Dow, Aniston gained worldwide recognition for portraying Rachel Green on the popular television sitcom Friends (1994–2004), a role which earned her a Primetime Emmy Award, a Golden Globe Award, and a Screen Actors Guild Award. The character was widely popular during the airing of the series and was later recognized as one of the 100 greatest female characters in United States television<button>更多</button>
</div>
.desc {position: relative;width: 400px;/*用像素表示,不要用em,以免造成不同浏览器下计算出现小数点取舍不同导致1像素的差距【行高*截取行数】*/overflow: hidden;max-height: 72px;font-size: 16px;line-height: 24px;overflow: hidden;word-wrap: break-word;/*强制打散字符*/word-break: break-all;background: #fff;/*同背景色*/color: #fff;&:after,&:before {content: attr(title);position: absolute;left: 0;top: 0;width: 100%;/*实际文本颜色*/color: #000;}&:before {display: block;overflow: hidden;/*显示在最上面,展示前面的(截取行数-1)行字符*/z-index: 1;/*根据行高和截取行数调整,值为[(截取行数-1)*行高]*/max-height: 48px;/*同背景色*/background: #fff;}&:after {display: -webkit-box;-webkit-box-orient: vertical;-webkit-box-sizing: border-box;box-sizing: border-box;/*截取行数*/-webkit-line-clamp: 3;/*行首缩进字符数,值为[(截取行数-1)*尾部留空字符数]*/text-indent: -8em;/*尾部留空字符数*/padding-right: 4em;}button {width: 40px;height: 20px;font-size: 12px;padding: 0;outline: 0;position: absolute;right: 0;bottom: 0;}
}

参考实例

codepen实例

css之多行文本输出相关推荐

  1. css鼠标黄哟延时,我想在css中应用延迟鼠标输出

    我想在鼠标移出事件开始CSS转换之前应用延迟.我的CSS代码如下,请让我知道如何在CSS过渡之前应用时间延迟.我想在css中应用延迟鼠标输出 我想要在用户将鼠标指针移出菜单之后,菜单保持稳定一段时间( ...

  2. 如何仅通过CSS实现多行文本超长自动省略号

    在CSS中,我们可以通过下面的样式实现DIV元素中文本超长后自动截断并以省略号结尾: overflow: hidden; word-break: normal; text-overflow: elli ...

  3. css实现多行文本时显示省略号

    1.效果 效果图如下,系统首页新闻部分,要求只显示摘要部分的前三行数据,多余的数据省略. 2.HTML代码 红框内为从数据库查询出来的新闻摘要信息 3.CSS代码 主要代码如下: .core-text ...

  4. css实现多行文本溢出显示省略号(…)全攻略

    省略号在ie中可以使用text-overflow:ellipsis了,但有很多的浏览器都需要固定宽度了,同时ff这些浏览器并不支持text-overflow:ellipsis设置了,下文来给各位整理一 ...

  5. html 文本溢出 兼容,CSS - 纯css实现多行文本溢出省略(兼容所有浏览器)

    前言 多行文本超出高度限制出现省略号 , 移动端多为webkit内核的 , 有扩展属性-webkit-line-clamp , 但并不是CSS规范中的属性 , PC端往往要借助js去实现这一效果,但麻 ...

  6. css实现多行文本超出省略号显示,兼容所有浏览器

    原文链接:https://github.com/happylindz/blog/issues/12 float 特性实现多行文本截断 基本原理 有个三个盒子 div,粉色盒子左浮动,浅蓝色盒子和黄色盒 ...

  7. 纯CSS实现多行文本溢出显示省略号(兼容不同浏览器)

    1.单行文本溢出显示省略号 单行文本溢出显示省略号比较简单,设置white-space: nowrap避免换行,再设置text-overflow: ellipse即可. <style>.s ...

  8. CSS单行/多行文本溢出显示省略号(...)

    1.单行文本CSS设置: { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } 2.多行文本CSS设置: { over ...

  9. css中多行文本溢出显示省略号的方法

    下面这几行代码可以直接复制到css样式中,实现溢出显示省略号的效果 overflow: hidden; //首先固定宽高,然后让溢出的文字隐藏 text-overflow: ellipsis; dis ...

最新文章

  1. 【ES】ES 如何在一个机器上同时模拟多个node
  2. 数据库mysql:MySQL软件安装
  3. 绝缘端子行业调研报告 - 市场现状分析与发展前景预测
  4. 337. 打家劫舍 III
  5. Pandas系列(六)SettingWithCopyWarning报警
  6. python程序设计课程设计二级减速器_二级减速器课程设计完整版
  7. java表情包_大佬 java表情包 - 大佬 java微信表情包 - 大佬 javaQQ表情包 - 发表情 fabiaoqing.com...
  8. 物联网-电力监控平台(汇总)
  9. Electron无边框模式下禁止双击最大化窗口
  10. 互联网新半场的流量生态——阿里云定向免流方案
  11. php怎么给视频加水印,视频怎么加水印 添加文字水印和图片水印 给视频加水印的软件...
  12. cytoscape作图难?10分钟搞定OTU的互作网络分析相关性联系图+MENA使用教程!
  13. 轻量迅捷时代,Vite 与Webpack 谁赢谁输
  14. Fighting!Hack for wuhan 黑客马拉松等你来战
  15. 最近爆火的高德AR导航!别告诉我你是最后一个知道的
  16. 除了U盘安装电视家3.0,就没有其他能下载安装方法吗?
  17. 如何在html上做弹框效果,如何设计优秀的弹出框网页设计?
  18. 没有人能够随随便便成功
  19. 【部署教程入门级别】开源会议室小程序部署
  20. 基于MATLAB/Simulink的电力电子电路仿真技术——PPT链接

热门文章

  1. Java检查字符串是否包含中文字符
  2. 智能一代云平台(三十八):单元测试推动开发,如何避免服务之间依赖拖了工期
  3. 腾讯IDG投资的明星无人车公司Zoox,拿下硅谷第一张载客许可
  4. 瑞士科学家造出了撞不坏的无人机丨Science Robitics
  5. 哈佛有只”精灵球“,唯有它能温柔收放深海的软体精灵 |Science Robotics
  6. CIA的海外间谍,要如何完美避开AI的监控?
  7. 合作活动 | 鲸准产业价值峰会AI专场,共探AI商业模式
  8. 毕啸南专栏 | 对话周鸿祎:打好人工智能时代安全攻防战
  9. 【新功能发布】事件监控升级-支持自动化处理云产品异常
  10. 《Python编程实战:运用设计模式、并发和程序库创建高质量程序》—— 导读