多行文字 溢出隐藏 三个点 兼容 IE8+ 及常用浏览器

2023-11-15

常用浏览器css简单实现:

	text-overflow: ellipsis;
	overflow: hidden;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;

IE我用js实现该效果:

	用js设置元素的高度,隐藏掉溢出部分。
	元素高度 = 行高 * 行数。
	利用元素的after属性来表示三个点“。。。”;
	用绝对定位固定位置;
	用css渐变增强特效。

代码:

<head>
	<meta charset="UTF-8">
	<title></title>
	<style type="text/css">
		div {
			width: 100px;
			/*常用浏览器css简单实现*/
			text-overflow: ellipsis;
			overflow: hidden;
			display: -webkit-box;
			-webkit-box-orient: vertical;
			-webkit-line-clamp: 2;
			border: solid 1px red;
		}
		
		.text {
			line-height: 14px;
			font-size: 14px;
			overflow: hidden;
			position: relative;
			margin: 15px auto;
		}
		
		.texter {
			height: 28px;
		}
		
		.texter:after {
			content: ' ... ';
			position: absolute;
			bottom: 0;
			right: 0;
		}
	</style>
	<script type="text/javascript">
		window.onload = function() {

			var oList = document.querySelectorAll('.text')
			for(var i = 0; i < oList.length; i++) {
				var oHeight = oList[i].offsetHeight
				
				// 兼容IE 这里 edge 返回false
				if(!!window.ActiveXObject || "ActiveXObject" in window) {
					
					// 设置文字右边距,空出三个点的位置
					oList[i].style.paddingRight = 10 + 'px'
					oHeight = getComputedStyle(oList[i])['height']
					
					// 利用正则提取数字,将非数字的部分‘px’删除
					oHeight = oHeight.replace(/[^0-9]/ig, '')
					
					// 设置元素高度(这里显示两行文字,行高14px),隐藏溢出部分
					if((oHeight / 14) > 2) {
						oList[i].className = 'text texter'
						oList[i].setAttribute('className', 'text texter')
					}
				}
			}
		}
	</script>
</head>

<body>
	<div class="text">
		哒哒哒哒哒哒哒哒哒哒哒哒哒哒哒哒哒哒多多多多多多多
	</div>
	<div class="text">
		哒哒哒哒哒哒哒哒哒哒哒哒哒哒哒哒哒哒多多多多多多多
	</div>
</body>

效果图:
edge:
在这里插入图片描述
IE8+:
在这里插入图片描述
学习小记 ,,,有更好的方法请多指教!!!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

多行文字 溢出隐藏 三个点 兼容 IE8+ 及常用浏览器 的相关文章

  • Atom“自动完成”不起作用

    因此 当您安装 Atom 时 autocomplete 会随其一起提供 并且默认情况下处于启用状态 当我编写代码时 什么也没有显示 为什么 是否需要配置任何文件才能正常工作 In autocomplete plus settings pag
  • jquery/javascript 处理后移至命名锚点

    在进行一些 jquery 处理后 如何将焦点移动到同一页面上的不同部分 名为锚点 函数 ABC 进行一些处理 然后 我需要将用户移动到同一页面上的某个部分 页面下方 您可以使用下面的代码将屏幕滚动到 div 只需更改选择器以匹配您要滚动到的
  • JavaScript 中的常用数字

    在我的任务中 我必须编写一个程序来查找数组中最常见的数字以及它重复的次数 我写了一些东西 但只打印最大重复次数 所以我的问题是如何打印这个元素的值 最大数量 在我的例子中是 4 var array 13 4 1 1 4 2 3 4 4 1
  • 在 AngularJS 中覆盖运行时的依赖关系

    我有一个服务叫 doggedHttp 它公开了与 http 现在我想创建一个 doggedResource服务是有角度的 resource服务之上 doggedHttp代替 http 换句话说我想注入 doggedHttp as the h
  • GeoJSON 要素坐标未显示在 OpenLayers 地图上

    我正在尝试显示一个GeoJSON地图上的多边形 我使用了 OpenLayers 提供的示例以及以下数据 但仅显示第二个多边形 var geojsonObject type FeatureCollection crs type name fe
  • 如何滚动到 jQuery Mobile 中的页面元素?

    我有一个很长的 jQuery 移动页面 并且想在页面加载后滚动到该页面中间的元素 到目前为止 我已经尝试了一些事情 最成功的是 jQuery document bind mobileinit function var target if t
  • 向 FTP 服务器执行跨域 XMLHTTPREQUEST 的语法是什么?

    我有一个 webDav CORS 插件 可以使用它在 webDav 服务器上 POST PUT GET REMOVE ALLDOCS 文件 我现在想对 FTP 做同样的事情 但我正在努力获取xmlhttprequest 工作语法 我只是收到
  • 将服务连接到现有的流星帐户

    我正在设置一个流星应用程序 其中涉及使用用户名和密码进行注册 然后希望将该帐户与 Facebook 和 Twitter 连接起来 我只需使用帐户包即可轻松启动并运行第一部分 但是当我有一个登录用户调用 Meteor loginWithFac
  • 在 Chrome 中检索浏览器语言

    我一直在尝试让 momentjs 正确检测浏览器语言并本地化时间显示 按照使用 Moment js 进行区域设置检测 https stackoverflow com questions 25725882 locale detection w
  • HTML if 语句在 CDN 失败时加载本地 JS/CSS

    当从 CDN 或任何外部服务器加载 CSS JS 文件时 有可能 即使概率很低 由于外部故障而丢失该文件 在这种情况下 html 页面将因缺乏适当的 CSS 和 JS 而被损坏 有没有一种实用的方法可以在 CDN 故障时加载本地版本 IF
  • 如何在流程图中间隔刻度线?

    我下面有一个流程图 您将看到标签被压缩 我想使刻度之间的宽度确保显示所有标签 标记如下 div div class graph info a href span span a a href class active span span a
  • 如何获取 svgElement 的比例?

    我正在研究 svg div style width 300 height 300 div
  • 反转二进制网络

    如何反转二元方程 以便找到哪些输入将产生给定的输出 Example Inputs i0 through i8 Outputs o0 through o8 Operators XOR AND 二元方程 1 i0 1 i1 0 i2 1 i3
  • JavaScript - 这个这个

    String prototype foo String prototype foo bar function How can you reference the grandparent string console log this par
  • 检查 href 中是否存在 jQuery 中的查询字符串

    我目前有一段 jQuery 用于附加带有一些位置信息的 URL jQuery a attr href function return this href location 123 abc 我的问题是大多数链接都有一个 其中使用上面的 就可以
  • ERR_IMPORT_ASSERTION_TYPE_MISSING 用于导入 json 文件

    这段代码运行良好 我不知道是因为我升级到 Node 17 还是什么原因 但现在我明白了 TypeError ERR IMPORT ASSERTION TYPE MISSING Module file Users xxxxx code pro
  • 如何修复 AJAX 在选中复选框时始终触发?

    有时这个 AJAX 会触发 有时不会 让我解释一下 habit js document ready function habit check change function habit this parent siblings habit
  • 使用后代选择器的响应式网站

    我试图使用媒体查询使我的网站响应 但是当我在代码的某些部分使用后代选择器时 页面没有响应 当我使用此代码时 该页面是响应式的 div1 float left width 20 height 200px background color re
  • 条件顺序仅在 init AngularJS 上执行

    如何在视图初始化时仅运行 orderBy 过滤器一次 我不希望我的列表在运行时被重新排序 li li 使用 orderBy 作为控制器中的过滤器 app controller DemoCtrl scope filter function s
  • addEventListener keydown 不起作用

    我在互联网上找到了一些基本的 Pong 代码 并尝试添加按键 代码在这里 http cssdeck com labs ping pong game tutorial with html5 canvas and sounds http css

随机推荐

  • 【链块观点01期】当区块链的风刮到教育行业,哪些变革是注定要发生的?

    原文链接 区块链应用案例 当区块链的风刮到教育行业 哪些变革是注定要发生的 一 教育是国之大计 古往今来 教育都在人类生活中占有着极其重要的位置 教育与社会的进步 文明的发展程度紧密相关 中国正在努力建设和谐社会 而如何达成社会主义和谐社会
  • Android Studio运行时自带签名配置过程详解

    文章转载自 http teachcourse cn 2053 html 摘要 Android Studio比Eclipse在配置Project签名文件时方便很多 可以同时指定debug和release两种模式下的签名文件 debug模式即A
  • SpringBoot的自动装配

    一 什么是SpringBoot自动装配 SpringBoot 定义了一套接口规范 这套规范规定 SpringBoot 在启动时会扫描外部引用 jar 包中的META INF spring factories文件 将文件中配置的类型信息加载到
  • Qt 交叉编译

    背景 本来Qt源码是可以直接使用交叉编译器编译通过 也可以使用编译通过的qmake生成可执行程序 但是可执行程序在没有Qt的环境下无法正常运行 因此我们不只是仅需要编译源码 还需要将依赖的环境编译出来 这样打包可执行程序的同时将相应的依赖拷
  • 爬虫项目二十一:需要简历吗?用Python轻松爬下上千份简历模板

    文章目录 前言 一 获取详情页url 二 获取下载链接 三 保存模板 前言 用Python对站长之家的上千个简历模板批量爬取保存 提示 以下是本篇文章正文内容 下面案例可供参考 一 获取详情页url 我们进入站长之家的免费模板网站 http
  • linux修改rc.local权限,CentOS7中rc.local中的指令不能生效问题。

    问题 在系统中 etc rc local设置自启动命令的时候 重启计算机 文件中的指令无法生效 我这里编译安装了一个mongodb数据库的服务 然后修改了环境变量 写入到了 bash profile 文件中 在shell中可以直接执行命令
  • idea创建python项目

    windows安装pyhon Window 安装 Python 哭哭啼的博客 CSDN博客下载官网地址 https www python org downloads windows 此处下载最新版本 64位 安装找到下载的文件解压文件即可配
  • 动态链接库和静态链接库的原理及区别

    静态连接库就是把 lib 文件中用到的函数代码直接链接进目标程序 程序运行的时候不再需要其它的库文件 动态链接就是把调用的函数所在文件模块 DLL 和调用函数在文件中的位置等信息链接进目标程序 程序运行的时候再从DLL中寻找相应函数代码 因
  • Ubuntu 下同局域网主机访问Tomcat 服务器

    转自 https blog csdn net zm yang article details 70483439 搭建Tomcat环境 自己写些小应用 需要用到服务器 便在Ubuntu环境下搭建了个Tomcat服务器 搭建方法很简单 去官网下
  • 数据转换之数据清洗

    一 实现对文本文件personnel data txt中的数据进行数据粒度的转换 即将文本文件personnel data txt中字段为household register的数据统一成省份 直辖市 并输出到文本文件personnel da
  • 大数据时代移动边缘计算架构中的差分隐私保护(二)

    大数据时代移动边缘计算架构中的差分隐私保护 二 实际上 给数据加拉普拉斯噪声或者是指数噪声是针对中心式的差分隐私处理框架的 对于本地化的差分隐私处理框架 现在已有的是采用随即相应技术 Bloom Filter等技术满足 本地化差分隐私 LD
  • 【iOS】—— SDWebImage源码学习

    SDWebImage源码 文章目录 SDWebImage源码 1 UIKit层 sd internalSetImageWithURL 1 取消之前下载操作 2 设置占位图 3 判断URL是否合法 2 工具层 SDWebImageManage
  • 毕业设计 - 基于单片机的智能水箱

    文章目录 1 简介 2 概述 2 1 系统描述 2 2 系统目标 3 具体实现 3 1 系统组成架构 3 2 系统功能 3 3 系统特点 3 4 水位检测及自动供水实现 3 5 水箱盖监控实现 3 6 信息实时传输实现 3 7 安卓客户端实
  • 【PIC单片机】2.编译器下载

    XC8 XC16和XC32对应8位 16位和32位PIC单片机 按实际使用的单片机选择下载最新版本即可 官网链接 https www microchip com en us development tools tools and softw
  • 目录:四种Qt程序的架构设计方法

    四种常见的关于Qt程序的架构设计方法 使用MVC设计模式MVC是Model View Controller的缩写 是应用程序开发中常用的设计模式 在Qt中 可以使用QAbstractItemModel和QTreeView等类来实现MVC模式
  • 如何设置、查询 ESP32 设备的 MAC 地址

    设置 查询 ESP32 设备的 MAC 地址有多种方式 如下 1 使用 AT 指令来设置 查询 ESP32 设备的 MAC 地址 1 1 使用 AT 指令设置 查询 Wi Fi Station 模式的 MAC 地址 使用 AT CIPSTA
  • 【数据库设计】无损连接的判别方法

    数据库设计 无损连接的判别方法 无损连接是指分解后的关系通过自然连接可以恢复成原来的关系 即通过自然连接得到的关系与原来的关系相比 既不多出信息 又不丢失信息 保持函数依赖分解是指在模式的分解过程中 函数依赖不能丢失的特性 即模式分解不能破
  • 数据库视图的基本操作(sql语句)

    表视图的增删改查 sql语句 概念 视图是一张虚拟表 它是从数据库的一张或多张表中导出的表 其内容由查询语句定义 作用 简单性 安全性 逻辑数据独立性 如果应用建立在视图上 当表发生变化时 可以修改视图屏蔽表的变化 使应用程序保持不变 如果
  • Python前台搜索-之百度网站搜索

    简述 selenium是谷歌公司的一个项目 这句代码的含义 从谷歌公司的一个项目导入 import 浏览器驱动webdriver 浏览器驱动是用代码来操作浏览器的 简述 调用webdriver Chrome 打开浏览器 简述 通过get方法
  • 多行文字 溢出隐藏 三个点 兼容 IE8+ 及常用浏览器

    常用浏览器css简单实现 text overflow ellipsis overflow hidden display webkit box webkit box orient vertical webkit line clamp 3 IE