前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >如何用CSS优雅地实现段落多行文本溢出隐藏?

如何用CSS优雅地实现段落多行文本溢出隐藏?

原创
作者头像
喵喵侠
修改于 2024-08-08 10:02:07
修改于 2024-08-08 10:02:07
8370
举报

目录

前言

你好,我是喵喵侠。在前端开发页面的过程中,有时候需要对段落文字进行溢出隐藏处理,特别是在内容较长的情况下。这篇文章将详细讲解如何使用CSS实现多行文字的溢出隐藏,再想到解决方法之前,你会觉得很麻烦,但有了这篇文章,你再也不用烦恼如何实现段落多行文本溢出隐藏的问题了!

实现方式:使用-webkit-line-clamp

实现多行文本溢出隐藏的关键,是使用CSS的-webkit-line-clamp属性,这个属性结合其他几个属性可以实现我们想要的效果。

根据MDN文档的描述,需要注意的是,它只有在display属性设置成 -webkit-box 或者 -webkit-inline-box 并且box-orient属性设置成 vertical时才有效果。

另外,该属性最初在 WebKit 中实现的,但存在一些问题。由于需要支持旧版本的浏览器,该属性已在 CSS Overflow Module Level 4 中被标准化。CSS Overflow Module Level 4 规范还定义了一个 line-clamp 属性,用来代替此属性并避免一些问题。

line-clamp这个CSS属性你也可以在caniuse上可以看到浏览器对此支持的情况。从下图可以看到,目前市面上主流的浏览器都是支持的,可以放心大胆使用。

"line-clamp" | Can I use... Support tables for HTML5, CSS3, etc

以下是详细步骤和代码示例:

步骤一:设置父容器

首先,设置一个父容器,这个容器包含我们要处理的段落文字。

代码语言:html
AI代码解释
复制
<div class="text-container">
  <p class="element">这是一个很长的段落文字示例,这段文字会被限制在两行显示,超出的部分将被隐藏并显示省略号。</p>
</div>

步骤二:应用CSS样式

接下来,使用CSS设置-webkit-line-clamp属性以及其他相关属性。

代码语言:css
AI代码解释
复制
.element {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    text-overflow: ellipsis;
    word-break: break-all;
}

这段CSS代码的具体解释如下:

  • display: -webkit-box;:设置盒模型为-webkit-box,使其能够支持多行文本溢出隐藏。
  • -webkit-box-orient: vertical;:将盒子设置为垂直布局。
  • -webkit-line-clamp: 2;:设置最大显示的行数,这里设置为2行。
  • overflow: hidden;:隐藏超出容器的内容。
  • text-overflow: ellipsis;:在溢出隐藏时显示省略号。
  • word-break: break-all;:表示对于对于 non-CJK (除了中文/日文/韩文外)文本,可在任意字符间断行。

注意:word-break: break-all;这个必须要设置,不然纯数字是没办法换行的,一定不要写漏掉了。高度或者最大高度可以不用设置,这个我试过了。如果你希望文字排版好看一点,可以设置line-height:1.5;

完整代码

代码语言:html
AI代码解释
复制
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>多行文本溢出隐藏示例</title>
  <style>
    .text-container {
      width: 300px;
      border: 1px solid #000;
    }

    .element {
      display: -webkit-box;
      -webkit-box-orient: vertical;
      -webkit-line-clamp: 2;
      overflow: hidden;
      text-overflow: ellipsis;
      word-break: break-all;
    }
  </style>
</head>

<body>
  <div class="text-container">
    <p class="element"> 这是一个很长的段落文字示例,这段文字会被限制在两行显示,超出的部分将被隐藏并显示省略号。这里继续添加更多的文字内容,以确保段落足够长来触发溢出效果。再多加一些文字以确保效果明显。 </p>
  </div>
</body>

</html>

效果如下:

总结

之前我看到过很多别的方法,比方说用伪元素做定位之类的,可以实现,但缺点也很明显,代码量也比较多。而通过使用-webkit-line-clamp属性,并且结合其他CSS属性,可以轻松实现段落多行文本的溢出隐藏。这种方法不仅简洁高效,还能保持页面布局的整洁,这可以说是最优雅的解决方案了!如果你需要对多行文本进行溢出隐藏处理,推荐使用这种方法。

希望这篇文章对你有所帮助!如果有任何疑问或需要进一步的解释,欢迎在评论区留言讨论。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Css实现一行或多行溢出显示省略号
注意的地方,如果父级或自身加了white-space: nowrap;多行溢出将无效 需要在自身加上 white-space: normal;
明知山
2020/09/03
1.4K0
常见的css换行样式[通俗易懂]
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/17
2.1K0
文字溢出隐藏以及和flex冲突的问题
在某些段落中,页面要求文字只显示一行,但是width固定,而文字过长,就会出现一个需求,超过长度限制的文字被隐藏且显示省略号,css 支持这样的属性。
子舒
2022/06/09
1.8K0
css易忘知识点换行
1.自动换行 p { word-wrap:break-word; word-break:normal; } 2.强制不换行 div{ white-space:nowrap; } 3强制英文单词换行 div{ word-break:break-all; } 4单行文本不换行多余文本显示省略号 行内元素最好转为inline-block div{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
用户6379025
2022/12/26
4330
【前端芝士树】纯CSS实现多行文本溢出显示省略号
该段样式在 vue 或者 angular 项目中会失效,因为代码构建过程中使用了 autoprefixer
CloudCat
2019/05/26
1.2K0
CSS 这个就叫优雅 | 多行文本溢出省略
文本溢出省略的应用场景主要分为单行以及多行两种,如果只是为了单行省略,那么实现起来简单且兼容性最好,只需要写上这三个属性。
Jensen_97
2023/07/19
1.6K0
【云端架构】前端CSS实现单行、多行文本溢出显示省略号
如何实现单行文本的溢出显示省略号,同学们应该都知道用text-overflow:ellipsis属性来,当然还需要加宽度width属来兼容部分浏览。
墨色明月
2018/05/14
1.5K0
【云端架构】前端CSS实现单行、多行文本溢出显示省略号
Css 实现多行文字截断
看似十分简单的标题截断效果,但是竟然没有一个统一 CSS 属性实现标准,需要用到一些奇淫妙计来实现,一般来说,在做这样文字截断效果时我们更多是希望:
grain先森
2019/04/18
2.3K0
Css 实现多行文字截断
原生CSS实现单行多余省略和多行多余省略
在日常开发中,经常会遇到一些省略文本的需求,比如“文本在一行显示,超出部分在结尾用省略号显示”、“最多显示三行,超出部分在第三行末尾用省略号显示”。
lonelydawn
2021/10/19
3.4K0
【黄啊码】css 文本两行显示,超出省略号表示
 重点:text-overflow: ellipsis;只对display:inline;起作用
黄啊码
2022/06/15
6730
【黄啊码】css 文本两行显示,超出省略号表示
css3 javascript 单行和多行文本溢出截断多种方案
写在最前面 在我们日常开发中的时候经常会遇到一种业务场景,需要截断一些文字的显示。可能是一行或者两行,或者根据字数限制或者用户的显示屏幕大小来展示对应的文字。 css 篇 一:单行文本溢出处理 代码 .text-ellipsis-single{ overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } 响应式截断,当文本溢出的时候才显示省略号。 预览codepen 情况 codepen.io/lpove/pen/M… 分
西南_张家辉
2021/02/02
1.3K0
单行和多行文字溢出处理方式
程序媛夏天
2024/01/18
1590
单行和多行文字溢出处理方式
记录一次JS 实现多行文本溢出
用户6256742
2024/05/17
1360
记录一次JS 实现多行文本溢出
前段:可能是最全的 “文本溢出截断省略” 方案合集
在我们的日常开发工作中,文本溢出截断省略是很常见的一种需考虑的业务场景细节。看上去 “稀松平常” ,但在实现上却有不同的区分,是单行截断还是多行截断?多行的截断判断是基于行数还是基于高度?这些问题之下,都有哪些实现方案?他们之间的差异性和场景适应性又是如何?凡事就怕较真,较真必有成长。本文试图通过编码实践,给出一些答案。
用户4962466
2019/12/05
2.2K0
十几个CSS高级常见技巧汇总(虚线框、三角形、优惠券卡券、滚动条、多行溢出...)
来自:CSDN ,作者:前端一零仙人 链接:https://blog.csdn.net/weixin_41556756/article/details/114196921 「列举一下效果」 设置input的placeholder的字体样式 单行和多行文本超出省略号 负边距使用技巧 定位同时设置方位情况 相邻兄弟选择器之常用场景 outline属性的妙用技巧 隐藏滚动条或更改滚动条样式 纯CSS绘制三角形 虚线框绘制技巧 卡券效果制作 隐藏文本的常用两种方法 表格边框合并 「1-1. 设置input 的pl
微芒不朽
2022/09/13
6350
完美掌握多行文本修剪技巧:CSS中的实用指南
这篇文章深入讨论了在CSS中裁剪多行文本的方法,以提高网页的外观和用户体验。作者首先介绍了常见的CSS文本裁剪技术,例如使用text-overflow和overflow属性。然后,他引入了新的CSS属性line-clamp,它可以更轻松地裁剪多行文本并添加省略号。作者解释了如何使用line-clamp属性设置最大行数,并指出了一些需要注意的注意事项。
前端小智@大迁世界
2023/08/16
3060
完美掌握多行文本修剪技巧:CSS中的实用指南
用css实现文本溢出 超出部分隐藏显示省略号
ellipsis  : 溢出显示 ... tip : 设置 ellipsis 时需将给元素设置 overflow: hidden; 和 white-space: nowrap; ,仅限于单行文本溢出。
德顺
2019/11/13
3.2K0
用css实现文本溢出 超出部分隐藏显示省略号
不定高多行溢出文本省略
大家应该都知道用text-overflow:ellipsis属性来实现单行文本的溢出显示省略号(…)。当然部分浏览器还需要加宽度width属性。
空空云
2018/09/27
1.7K0
CSS控制文字,超出部分显示省略号
如果实现单行文本的溢出显示省略号同学们应该都知道用text-overflow:ellipsis属性来,当然还需要加宽度width属来兼容部分浏览。
山河木马
2019/03/05
3.3K0
CSS控制文字,超出部分显示省略号
CSS 样式控制溢出的数据 省略号隐藏
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011415782/article/details/79011399
泥豆芽儿 MT
2018/09/11
1K0
CSS 样式控制溢出的数据 省略号隐藏
推荐阅读
相关推荐
Css实现一行或多行溢出显示省略号
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文