前言:文本超出省略使用率非常高,不但可以省空间,也可以使页面看起来更加简洁。

一、单行省略

p { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

单行省略很简单。

二、多行省略

<body><style>div {width:200px;overflow: hidden;text-overflow: ellipsis;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 2;}</style><div>这是测试的语句。这是测试的语句。这是测试的语句。这是测试的语句。这是测试的语句。这是测试的语句。这是测试的语句。这是测试的语句。这是测试的语句。</div>
</body>

这时就可以实现多行文本显示了。

该效果是通过弹性盒模型来实现的,这就要注意兼容性方面的问题了。

  • display: -webkit-box;  将对象作为弹性伸缩盒子模型显示 。
  • -webkit-box-orient:vertival; 设置或检索伸缩盒对象的子元素的排列方式 。值vertival为(从上向下垂直排列子元素);
  • -webkit-line-clamp:2; 块元素显示的文本的行数。

①、 display:box;  要加上浏览器前缀,兼容性还是可以的。例如:

display : -webkit-box;
display : -moz-box;
display : -ms-flexbox;
display : -o-box;
display : box;

②、box-orient: vertical;  也要加上浏览器前缀。

-webkit-box-orient: vertical;
-moz-box-orient: vertical;
-ms-flex-direction: column;
-o-box-orient: vertical;
box-orient: vertical;  

支持情况

③、-webkit-line-clamp的兼容性就会差一些了

IE、Firefox并不兼容该属性,不过在移动端主流浏览器方面的兼容性还是蛮不错的。

三、检测是否需要省略

  var oDiv = document.querySelector('div');if (oDiv.scrollHeight > oDiv.clientHeight) {console.log('有省略号');}/*clientHeight:元素客户区的大小,指的是元素内容及其边框所占据的空间大小(大多是视口大小)scrollHeight: 滚动大小,指的是包含滚动内容的元素大小(元素内容的总高度)offsetHeight: 偏移量,包含元素在屏幕上所用的所有可见空间(包括所有的内边距滚动条和边框大小,不包括外边距)*/

通过比较标签元素的scrollHeight 和 clientHeight 可以得出有没有超出省略。可以在元素后面添加一个“更多”按钮,点击展开被省略的信息。这个也是现在很多网页在用的功能。

四、兼容多行省略

<body><style>.box { position:relative; width:200px; line-height:20px; }.box .text { width:100%; height:40px; overflow:hidden; }.box .text-ellipsis::after { position:absolute; bottom:0; right:0;content:'...';line-height:20px; background:#fff; }</style><div class="box"><div class="text">这是测试的语句。这是测试的语句。</div></div><div class="box"><div class="text">这是测试的语句。这是测试的语句。这是测试的语句。这是测试的语句。</div></div><script>var aDiv = document.querySelectorAll('.text');for(var index = 0,len = aDiv.length; index<len; index++){var oDiv = aDiv[index];if (oDiv.scrollHeight > oDiv.clientHeight) {oDiv.classList.add('text-ellipsis');}}</script>
</body>

运行结果:

【JavaScript】多行文本省略,并且判断是否需要省略。相关推荐

  1. JavaScript如何简单而准确地判断复杂数据类型

    javaScript如何简单而准确地判断复杂数据类型? 1:typeof 只能判断出基本数据类型 例如: var a = 3; typeof a 的结果为 number var b = []; typ ...

  2. C#保留2位小数几种场景总结 游标遍历所有数据库循环执行修改数据库的sql命令 原生js轮盘抽奖实例分析(幸运大转盘抽奖) javascript中的typeof和类型判断...

    C#保留2位小数几种场景总结 场景1: C#保留2位小数,.ToString("f2")确实可以,但是如果这个数字本来就小数点后面三位比如1.253,那么转化之后就会变成1.25. ...

  3. javascript中对变量类型的判断

    在JavaScript中,有5种基本数据类型和1种复杂数据类型,基本数据类型有:Undefined,Null,Boolean, Number和String:复杂数据类型是Object,Object中还 ...

  4. javaScript使用三目运算进行判断

    2019独角兽企业重金招聘Python工程师标准>>> 在JavaScript中,除了 if ... else 和 switch 语句,还有一个唯一的三目运算符 ? ... : ,也 ...

  5. JavaScript 中的this的简便判断

    this 我这里总结一下规律 一般 function 函数谁调用指向谁 箭头函数的this指向是和同级的this指向相同 也就是说,在箭头函数上方打印this 就可以判断this的指向 bind ap ...

  6. JavaScript基础知识(三个判断、三个循环)

    三个判断 if-else-只会执行其中一个条件 如果if条件中只有一个值,那么会默认转布尔: if(1=="1"){ // 当括号中条件为true时,执行此处的代码 console ...

  7. JavaScript PHP 通过URLEncode字串判断其编码是UTF-8还是GBK

    例如给出字串: %B4%BA 或 %E6%98%A5 如何判断应该是使用UTF-8还是GBK进行URLDecode? 思路1 通用方法: 假定它是 GBK 的编码 ,则将其转换成 utf-8 然后再转 ...

  8. javascript输入某年月某日,判断是这一年的多少天

    //输入某年月某日,判断是这一年的多少天 function getDay(year,month,day){var days = day;//如果是一月的话,直接返回天数dayif(month === ...

  9. Android TextView 如何判断是否已经省略

    我们知道,要使TextView单行显示,如果超出的话用"-"显示,只要设置 android:ellipsize="end" android:singleLine ...

  10. 30、JavaScript的基本类型和引用类型的判断方法

    一.常见的基本数据类型和引用数据类型 1.基本数据类型:Number.String.Boolean.Null.undefined.基本数据类型,名字和值都会储存在栈内存中. 2.引用数据类型:Obje ...

最新文章

  1. 2022-2028年中国物联网金融产业深度调研及投资前景预测报告
  2. KV数据存储:持久化
  3. home目录迁移至新分区
  4. stm32f10x_it.c 定义的程序列表模板(stm32f103x_it.c中放的是中断的空函数)
  5. MHA管理所有数据库服务器
  6. 读取纯真IP数据库的公用组件QQWry.NET
  7. GOROOT、GOPATH、GOBIN、project目录
  8. 【AD】取消普通域用户帐号加域权限授权特定普通域用户加域权限
  9. DIV 粘贴插入文本或者其他元素后,移动光标到最新处
  10. 内网渗透之——域渗透中利用ms-14-068漏洞进行票据伪装获取域管账号密码
  11. 郑树生与李一男的对望
  12. 算法笔记——渐进分析和渐进符号
  13. 解决tomcat 静态页面(html)中文乱码终极篇
  14. 领卓教育:QT图片转换器
  15. 计算机网络怎么运行内存,运行内存,教您如何扩大电脑的运行内存
  16. 呕心沥血60道Vue、Vue-Router、Vuex面试题及详解!
  17. 微信小程序获取页面元素高度_微信小程序之动态获取元素宽高
  18. mysql 批量更新数据 备份_mysql 批量更新与批量更新多条记录的不同值实现方法...
  19. html表格单行溢出省略号,单行、多行文本溢出显示省略号(css、js两种方法)
  20. 课程所用软件下载地址

热门文章

  1. ANSYS ICEM CFD三维结构网格生成实例——汽车外流
  2. 事务里面的脏读、不可重复读、虚读/幻读
  3. AttributeError: ‘str‘ object has no attribute ‘spilt‘ on line 9
  4. html 制作魔方源代码,CSS3 3d环境实现立体 魔方效果代码
  5. google 手气不错 的代码
  6. Bouncy Castle使用(一)【开始】
  7. 鹅厂同学:7 月开始不再进行薪酬调整?
  8. firewalld防火墙IP伪装和端口转发
  9. win7电脑怎么伪装ip地址【系统天地】
  10. 积雪草酸肌白蛋白纳米粒|野黄芩苷豆清白蛋白纳米粒|黄芩苷蓖麻蛋白纳米粒(齐岳)