本文记录实现文本溢出显示省略号的几种方式。

单行文本

三行CSS代码实现:

  1. overflow: hidden; // 文本溢出隐藏
  2. text-overflow: ellipsis; // 显示省略号
  3. white-space: nowrap; // 设置文本不换行

注意:

  • 设置文本溢出显示省略号时必须有宽度 width;
  • 必须要设置display属性为line-block/block,设置为其他值不生效。

多行文本

1. CSS代码实现

这种方式用于webkit浏览器或者移动端页面中。

具体例子如下:

  1. <div class="box">
  2. <p class="textEllipsis">
  3. 这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字
  4. </p>
  5. </div>
  6. <style>
  7. box {
  8. width: 200px;
  9. background-color: #ccc;
  10. }
  11. .textEllipsis{
  12. display: -webkit-box;
  13. -webkit-box-orient: vertical;
  14. -webkit-line-clamp: 2; /*显示的行数*/
  15. overflow: hidden;
  16. word-break:break-all; /*可择*/
  17. }
  18. </style>



在未设置 .textEllipsis 样式之前文本如上图显示。

设置 .textEllipsis 样式之后,如下图显示。显示两行,可以通过设置 -webkit-line-clamp 的属性值来控制显示的行数。

word-break: break-all; 所有的都换行,不留一点空隙的换行。如下图所示。

2. 非webkit浏览器

可以通过css样式技巧实现。实例如下:

  1. <div class="box">
  2. <p class="textEllipsis">
  3. 这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字
  4. </p>
  5. </div>
  6. <style>
  7. .box {
  8. width: 200px;
  9. background-color: #ccc;
  10. }
  11. .textEllipsis {
  12. position: relative;
  13. line-height: 20px;
  14. height: 60px; /*height高度正好是line-height的n倍*/
  15. overflow: hidden;
  16. border: #5D5D5D solid 1px;
  17. word-break: break-all;
  18. }
  19. .textEllipsis::after {
  20. content: "…";
  21. position: absolute;
  22. bottom: 0;
  23. right: 0;
  24. width: 17px;
  25. padding-left: 33px;
  26. background: -webkit-linear-gradient(left, transparent, #fff 55%);
  27. background: -o-linear-gradient(right, transparent, #fff 55%);
  28. background: -moz-linear-gradient(right, transparent, #fff 55%);
  29. background: linear-gradient(to right, transparent, #fff 55%);
  30. }

效果图如下,感觉不是很美观,但也是一种实现方式。

js实现文本溢出显示省略号

使用一些js库实现文本溢出隐藏的效果也比较好。

  1. Clamp.js 实现。github地址:https://github.com/josephschmitt/Clamp.js。
  1. var module = document.getElementById('clamp-this-module');
  2. //多行
  3. $clamp(module,{clamp:3});
  4. //单行
  5. $clamp(module,{clamp:1});
  1. 使用jquery插件,jQuery.dotdotdot。官网地址点这里

    注意:使用jQuery.dotdotdot插件时要给希望显示省略号的盒子添加高度,否则不会生效。
  1. <style>
  2. .wrapper {
  3. width: 400px;
  4. height: 50px;
  5. }
  6. </style>
  7. <p class="wrapper">
  8. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Asperiores maxime quia velit quod, praesentium animi a, debitis incidunt, consectetur odio, voluptatum nam dolores perspiciatis quo sit. Voluptatibus ab temporibus, sit!
  9. </p>
  10. <script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script>
  11. <script src="https://cdn.jsdelivr.net/npm/jquery.dotdotdot@3.2.3/dist/jquery.dotdotdot.min.js"></script>
  12. <script type="text/javascript">
  13. $(document).ready(function() {
  14. $(".wrapper").dotdotdot({
  15. // 添加相关配置项
  16. ellipsis : '...'
  17. });
  18. });
  19. </script>

参考文章:https://blog.csdn.net/u013112461/article/details/102546463

CSS和JS实现文本溢出显示省略号的更多相关文章

  1. CSS文本溢出显示省略号

    项目中常常有这种需要我们对溢出文本进行"..."显示的操作,单行多行的情况都有(具体几行得看设计师心情了),这篇随笔是我个人对这种情况解决办法的归纳,欢迎各路英雄指教. 单行 语法 ...

  2. CSS单行文本溢出显示省略号

    此为转载,原文地址 项目中常常有这种需要我们对溢出文本进行"..."显示的操作,单行多行的情况都有(具体几行得看设计师心情了),这篇随笔是我个人对这种情况解决办法的归纳,欢迎各路英 ...

  3. CSS换行文本溢出显示省略号

    现代浏览器中使用css可以实现文本溢出,使用 text-overflow: ellipsis;在有些场景下没有效果,这个时候你需要检查应用的场景是是否是块元素,是否有确切的width. 如果是行内元素 ...

  4. CSS 单行 多行文本溢出显示省略号

    单行文本 overflow: hidden; text-overflow:ellipsis; white-space: nowrap; 多行文本溢出显示省略号: <style type=&quo ...

  5. CSS3文本溢出显示省略号

    CCS3属性之text-overflow:ellipsis;的用法和注意之处 语法: text-overflow:clip | ellipsis 默认值:clip 适用于:所有元素 clip: 当对象 ...

  6. 布局常见问题之css实现多行文本溢出显示省略号(…)全攻略

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

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

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

  8. css 多行文本的溢出显示省略号(移动端)

    多行文本的溢出显示省略号(移动端) 一.单行文本的溢出显示省略号(通用) .mui-ellipsis { overflow: hidden; /*规定当文本溢出包含元素时发生的事情*/ white-s ...

  9. 文本溢出显示省略号,CSS未加载时a标签仍可用处理方法

    一.文本溢出打点 (1)单行文本 overflow: hidden; text-overflow:ellipsis; white-space: nowrap; (2)多行文本 overflow : h ...

随机推荐

  1. 【论文笔记】Pyramidal Convolution: Rethinking Convolutional Neural Networks for Visual Recognition

    地址:https://arxiv.org/pdf/2006.11538.pdf github:https://github.com/iduta/pyconv 目前的卷积神经网络普遍使用3×3的卷积神经 ...

  2. Struts2 执行流程 以及 Action与Servlet比较 (个人理解)

    上图提供了struts2的执行流程.如下: 1:从客户端发出请求(HTTPServletRequest). 2:请求经过各种过滤器(filter),注:一般情况下,如SiteMesh等其他过滤器要放在 ...

  3. mac Pycharm 导入jieba报错解决

    背景 新买的mac 用的还不是太熟,在用jieba做分词的时候,pycharm import说是没有安装,那我就直接点击安装呗,结果失败,说是当前渠道不能识别,ok,那我就开始一步一步来解决了. 正文 ...

  4. Python3-设计模式-迭代器模式

    Python3中的迭代器 迭代器模式主要是访问集合元素的一中方式,迭代器不会把整个集合对象加载到内存,而是按照顺序将集合中的元素一个一个的进行迭代,这样每次迭代的时候只取少量的元素,比较省内存 注: ...

  5. Tensorflow入门学习笔记汇总

    一.环境准备 1.安装python:下载地址https://www.python.org/downloads/windows/下载并安装(推荐python3) 2.安装对应python版本的库:htt ...

  6. 入门大数据---Flink开发环境搭建

    一.安装 Scala 插件 Flink 分别提供了基于 Java 语言和 Scala 语言的 API ,如果想要使用 Scala 语言来开发 Flink 程序,可以通过在 IDEA 中安装 Scala ...

  7. 深入理解JVM(③)Java模块化系统

    前言 JDK9引入的Java模块化系统(Java Platform Module System ,JPMS)是 对Java技术的一次重要升级,除了像之前JAR包哪有充当代码的容器之外,还包括: 依赖其 ...

  8. Solaris 10上Oracle 10g安装步骤图解

    文章目录 1. 说明 2. 查看相关包 3. 添加用户和组 4. 设置oracle环境变量 5. 创建Oracle软件目录 6. 修改OS参数 7. 上传Oracle软件包并解压 8. 开始安装 9. ...

  9. JavaScript图形实例:再谈IFS生成图形

    在“JavaScript图形实例:迭代函数系统生成图形”一文中,我们介绍了采用迭代函数系统(Iterated Function System,IFS)创建分形图案的一些实例.在该文中,仿射变换函数W的 ...

  10. django 后端分页

    分页处理脚本: # -*- coding: utf-8 -*- # @Time : 2019-01-22 10:41 # @Author : 小贰 # @FileName: page.py # @fu ...