我的编程空间,编程开发者的网络收藏夹
学习永远不晚

纯CSS实现“文本溢出截断省略”的几种方法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

纯CSS实现“文本溢出截断省略”的几种方法

小编给大家分享一下纯CSS实现“文本溢出截断省略”的几种方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

在我们的日常开发工作中,文本溢出截断省略是很常见的一种需考虑的业务场景细节。看上去 “稀松平常” ,但在实现上却有不同的区分,是单行截断还是多行截断?多行的截断判断是基于行数还是基于高度?这些问题之下,都有哪些实现方案?他们之间的差异性和场景适应性又是如何?

一般来说,在做这样文字截断效果时我们更多是希望:

  • 兼容性好,对各大主流浏览器有好的支持

  • 响应式截断,根据不同宽度做出调整

  • 文本超出范围才显示省略号,否则不显示省略号

  • 省略号位置显示刚好

基于上述的准则,下面我们通过编码实践,给出一些答案。

单行文本溢出省略

核心 CSS 语句

  • overflow: hidden;(文字长度超出限定宽度,则隐藏超出的内容)

  • white-space: nowrap;(设置文字在一行显示,不能换行)

  • text-overflow: ellipsis;(规定当文本溢出时,显示省略符号来代表被修剪的文本)

优点

  • 兼容性好,对各大主流浏览器有好的支持

  • 响应式截断,根据不同宽度做出调整

  • 文本溢出范围才显示省略号,否则不显示省略号

  • 省略号位置显示刚好

短板

  • 只支持单行文本截断,并不支持多行

适用场景

  • 适用于单行文本溢出显示省略号的情况

Demo

<div class="demo">      床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光</div>
.demo {  white-space: nowrap;  overflow: hidden;  text-overflow: ellipsis;}

效果示例

纯CSS实现“文本溢出截断省略”的几种方法

多行文本溢出省略(-webkit-line-clamp)

核心 CSS 语句

  • overflow: hidden;(文本溢出限定的宽度就隐藏内容)

  • -webkit-line-clamp: 2;(用来限制在一个块元素显示的文本的行数, 2 表示最多显示 2 行。 为了实现该效果,它需要组合其他的WebKit属性)

  • display: -webkit-box;(和 -webkit-line-clamp: 2;结合使用,将对象作为弹性伸缩盒子模型显示 )

  • -webkit-box-orient: vertical;(和 -webkit-line-clamp: 2;结合使用 ,设置或检索伸缩盒对象的子元素的排列方式 )

  • text-overflow: ellipsis;(多行文本的情况下,用省略号“&hellip;”隐藏溢出范围的文本)
     

优点

  • 响应式截断,根据不同宽度做出调整

  • 文本溢出范围才显示省略号,否则不显示省略号

  • 浏览器原生实现,所以省略号位置显示刚好

短板

兼容性一般: -webkit-line-clamp 属性只有 WebKit 内核的浏览器才支持

纯CSS实现“文本溢出截断省略”的几种方法

适用场景

多适用于移动端页面,因为移动设备浏览器更多是基于 WebKit 内核

Demo

<div class="demo">      床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光</div>
.demo {  display: -webkit-box;  overflow: hidden;  -webkit-line-clamp: 2;  -webkit-box-orient: vertical;}

效果示例

纯CSS实现“文本溢出截断省略”的几种方法

多行文本溢出省略(伪元素 + 定位)

核心 CSS 语句

  • position: relative; (为伪元素绝对定位)

  • overflow: hidden; (文本溢出限定的宽度就隐藏内容)

  • position: absolute;(给省略号绝对定位)

  • line-height: 18px; (结合元素高度,高度固定的情况下,设定行高, 控制显示行数)

  • height: 36px; (设定当前元素高度)

  • ::after {} (设置省略号样式)

  • word-break: break-all; (如果文本中有英文,可以使一个单词能够在换行时进行拆分)
     

优点

  • 兼容性好,对各大主流浏览器有好的支持

  • 响应式截断,根据不同宽度做出调整

短板

  • 无法识别文字的长短,无论文本是否溢出范围,一直显示省略号省略号

  • 显示可能不会刚刚好,有时会遮住一半文字,跟文字没有贴合的很紧密

适用场景

文字内容较多,确定文字内容一定会超过容器的

Demo

<div class="demo">      床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光</div>
.demo {    position: relative;    line-height: 18px;    height: 36px;    overflow: hidden;    word-break: break-all;}.demo::after {    content:"...";    font-weight:bold;    position:absolute;    bottom:0;    right:0;    padding:0 20px 1px 45px;            background: -webkit-gradient(linear, left top, right top, from(rgba(255, 255, 255, 0)), to(white), color-stop(50%, white));    background: -moz-linear-gradient(to right, rgba(255, 255, 255, 0), white 50%, white);    background: -o-linear-gradient(to right, rgba(255, 255, 255, 0), white 50%, white);    background: -ms-linear-gradient(to right, rgba(255, 255, 255, 0), white 50%, white);    background: linear-gradient(to right, rgba(255, 255, 255, 0), white 50%, white);}

效果示例

纯CSS实现“文本溢出截断省略”的几种方法

多行文本溢出省略(Float)

核心 CSS 语句

  • line-height: 20px;(结合元素高度,高度固定的情况下,设定行高, 控制显示行数)

  • overflow: hidden;(文本溢出限定的宽度就隐藏内容)

  • float: right/left;(利用元素浮动的特性实现)

  • position: relative;(根据自身位置移动省略号位置, 实现文本溢出显示省略号效果)

  • word-break: break-all;(如果文本中有英文,可以使一个单词能够在换行时进行拆分)
     

优点

  • 兼容性好,对各大主流浏览器有好的支持

  • 响应式截断,根据不同宽度做出调整

  • 文本溢出范围才显示省略号,否则不显示省略号

短板

省略号显示可能不会刚刚好,有时会遮住一半文字,跟文字没有贴合的很紧密

适用场景

文字内容较多,确定文字内容一定会超过容器的

Demo

<div class="demo">      <div class="text">        床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光床前明月光      </div></div>
.demo {  height: 40px;  line-height: 20px;  overflow: hidden;}.demo .text {  float: right;  margin-left: -5px;  width: 100%;  word-break: break-all;}.demo::before {  float: left;  width: 5px;  content: "";  height: 40px;}.demo::after {  float: right;  content: "...";  height: 20px;  line-height: 20px;  padding-right: 5px;  text-align: right;  width: 3em;  margin-left: -3em;  position: relative;  left: 100%;  top: -20px;  padding-right: 5px;        background: -webkit-gradient(    linear,    left top,    right top,    from(rgba(255, 255, 255, 0)),    to(white),    color-stop(50%, white)  );  background: -moz-linear-gradient(    to right,    rgba(255, 255, 255, 0),    white 50%,    white  );  background: -o-linear-gradient(    to right,    rgba(255, 255, 255, 0),    white 50%,    white  );  background: -ms-linear-gradient(    to right,    rgba(255, 255, 255, 0),    white 50%,    white  );  background: linear-gradient(    to right,    rgba(255, 255, 255, 0),    white 50%,    white  );}

效果示例

纯CSS实现“文本溢出截断省略”的几种方法

看完了这篇文章,相信你对“纯CSS实现“文本溢出截断省略”的几种方法”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网行业资讯频道,感谢各位的阅读!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

纯CSS实现“文本溢出截断省略”的几种方法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

纯CSS实现“文本溢出截断省略”的几种方法

小编给大家分享一下纯CSS实现“文本溢出截断省略”的几种方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!在我们的日常开发工作中,文本溢出截断省略是很常见的一种需考虑的业务场景细节。看上去 “稀松平常” ,但在实现上却有不
2023-06-08

css多行文本溢出时出现省略号的实现

这篇文章将为大家详细讲解有关css多行文本溢出时出现省略号的实现,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1. csstip:只兼容chrome内核的浏览器。ff不支持。.box {
2023-06-08

css实现文本多行省略号的方法

这篇文章给大家分享的是有关css实现文本多行省略号的方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。css实现文本多行省略号的方法:1、使用【text-overflow:ellipsis】属性实现单行文本省略;
2023-06-08

css实现多行文本溢出隐藏的方法

这篇文章将为大家详细讲解有关css实现多行文本溢出隐藏的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在css中,可使用overflow属性来实现多行文本溢出隐藏,只需要给文本元素添加“overflo
2023-06-14

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录