首页 > 其他分享 >CSS文本超出后隐藏并显示省略号及其他浏览器兼容方案

CSS文本超出后隐藏并显示省略号及其他浏览器兼容方案

时间:2024-09-13 09:23:55浏览次数:12  
标签:clamp 多行 浏览器 省略号 webkit 省略 overflow 文本 CSS

废话不多说,先上代码!

1、只显示一行文字后隐藏并省略
// 只显示一行文字后省略
.element {
	width: 300px;               /* 需要设置一个固定宽度 */
	white-space: nowrap;        /* 强制单行显示,不换行 */
	overflow: hidden;           /* 超出盒子部分隐藏 */
	text-overflow: ellipsis;    /* 超出部分显示省略号 */
}
2、显示指定行数文字后隐藏并省略
// 显示多行文字后省略
.element {
  	width: 300px;               	/* 需要设置一个固定宽度 */
  	display: -webkit-box;        	/* 使用弹性盒布局 */
  	-webkit-box-orient: vertical; 	/* 垂直排列 */
  	-webkit-line-clamp: 3;        	/* 显示三行 */
  	overflow: hidden;             	/* 超出盒子部分隐藏 */
  	text-overflow: ellipsis;      	/* 超出部分显示省略号 */
}

多行文本省略,通过使用 display: -webkit-box; 弹性盒子布局,配合 -webkit-line-clamp 实现多行文本截断。
注:这套方法适用于 WebKit 内核浏览器(如 Chrome、Safari 等)。对于其他浏览器,可能需要额外的 polyfill 支持。

其他解决方案

1、使用 JavaScript 动态地计算文本内容的高度并进行截断。

2、使用已有的库:如:Clamp.js
Clamp.js:一个轻量级的库,用于实现跨浏览器的多行文本截断。

//单行
$clamp(myHeader, {clamp: 1});

//多行
$clamp(myHeader, {clamp: 3});

//根据可用高度自动计算行数
$clamp(myParagraph, {clamp: 'auto'});

//根据固定高度自动计算行数
$clamp(myParagraph, {clamp: '35px'});

3、CSS Fallback(部分兼容方案)
对于某些浏览器,虽然没有直接支持 -webkit-line-clamp 的属性,但我们可以结合一些简单的 CSS 来实现近似效果。

.element {
  	display: block;              /* 显示为块 */
  	overflow: hidden;            /* 隐藏超出内容 */
  	text-overflow: ellipsis;     /* 超出部分显示省略号 */
  	line-height: 1.5em;          /* 设置行高 */
  	max-height: 4.5em;           /* 3行的最大高度,3行 * 1.5行高 = 4.5em */
  	white-space: normal;         /* 保持正常的文本换行 */
}

这种方案虽然无法在所有情况下实现精确的多行截断,但在支持基本的多行文本省略显示方面仍然适用。

标签:clamp,多行,浏览器,省略号,webkit,省略,overflow,文本,CSS
From: https://blog.csdn.net/STASDSDF/article/details/142128068

相关文章

  • 如何利用 CSS 渐变实现多样化背景效果
    前言总在平常看到像这样的图片背景是如何实现的呢背景效果的多样性和美观性直接影响用户体验。CSS渐变为设计师提供了一种强大且灵活的方法来创建引人注目的背景。渐变是颜色之间平滑过渡的效果,通过调整渐变类型和设置,你可以轻松实现从简单到复杂的各种背景效果。在......
  • 【CSS in Depth 2 精译_029】5.2 Grid 网格布局中的网格结构剖析(上)
    当前内容所在位置(可进入专栏查看其他译好的章节内容)第一章层叠、优先级与继承(已完结)1.1层叠1.2继承1.3特殊值1.4简写属性1.5CSS渐进式增强技术1.6本章小结第二章相对单位(已完结)2.1相对单位的威力2.2em与rem2.3告别像素思维2.4视口的相对单位2.5......
  • vue3 判断浏览器打开窗口页签变化
       场景:当需要同时打开两个页签,需要在切换页签的时候,重新获取数据    根据document.visibilityState结果判断。如果为visible则证明回到当前页签, 如果为hidden则证明当前页面未显示(前往了其他页签)import{onMounted,onUnmounted}from'vue';consthan......
  • [CSS] z-index
    z-index不生效未设置定位z-index仅对定位元素生效,也就是说,元素必须设置了position属性为relative,absolute,fixed或sticky。如果元素的position是默认的static,z-index会失效。堆叠上下文层叠上下文是元素的一个局部层叠环境,z-index只在它所属的层叠上下文中有效......
  • 如何使用谷歌浏览器开发者工具调试CSS
    使用谷歌浏览器内置的开发者工具可以极大地简化CSS调试过程。这套工具不仅可以帮助开发者识别和修正样式问题,还能实时编辑和查看CSS变化,是前端开发不可或缺的助手。下面就给大家分析一下如何使用谷歌浏览器开发者工具调试CSS。(本文由https://www.chromexiazai.net/站点的作者......
  • [CSS] 伪元素和伪类,::before 和 :before 区别
    特点伪类伪元素用途选择元素的状态或基于结构选择元素创建虚拟的内容,操作元素的某些部分语法使用单个冒号(......
  • flex css - 在一定高度后剪辑元素而不是换行
    布局是一种用于创建灵活和响应式布局的CSS技术。它提供了一种更简单和直观的方式来排列和对齐页面元素。通过使用Flex布局,可以轻松实现水平和垂直方向上的对齐、分布和自适应调整。它还支持灵活的容器和项目的大小调整,以及对元素顺序的控制。掌握Flex布局的基础知识对于构建......
  • Edge浏览器设置夜间模式/深色模式
    问题背景普通白色背景感觉有点刺眼,想改成深色背景,但是默认的设置里面只能修改边框的颜色:这里虽然设置界面和边框变成了黑色的,但是实际上打开网页还是白色的。全局配置在Edge浏览器打开edge://flags/,然后搜索DarkMode,从中选取对应的模式,可以直接Enable,我使用的配置为:配......
  • 在CSS中,有哪些常见的选择器优先级问题,应该如何避免?
    在CSS中,有哪些常见的选择器优先级问题,应该如何避免?来源:锦匠网页在CSS中,选择器优先级(也称为特异性)决定了多个规则冲突时,哪个规则将被应用到元素上。理解和正确处理选择器优先级问题对于前端开发者来说非常重要,因为它们直接影响到页面的最终样式。本文将探讨常见的选择器优......
  • CSS选择器的种类及其使用技巧
    CSS选择器的种类及其使用技巧来源:锦匠网页CSS选择器是CSS中用于选择页面上的元素并对其应用样式的基本工具。了解不同类型的CSS选择器及其使用技巧对于前端开发者来说至关重要,它们可以帮助你更精确地定位和样式化HTML元素。本文将介绍CSS选择器的种类及其使用技巧,并提供示......