多行文字 省略号显示

背景:
需求中要求文字内容尽量丰富一些,但超出需要省略号显示在末尾,鼠标移入可显示全部内容

##answer1

.ellipisDefine{
	width:100%;
	height:100%;
	text-overflow:ellipsis; // 文本冒号设置
	overflow:hidden;  //设置隐藏
	display:-webkit-box; // 设置盒子类型
	-webkit-box-orient:vertical;//设置盒子的方向为水平方向
	-webkit-line-clamp:2; //设置盒子里最多几行,此处为2行即最多显示2行
}

存在问题:1.具体行数需要已知,
2.line-clamp属性非标准属性,在某些浏览器下可能不支持

##answer2

.ellipisDefine2{
	width:100%;
	heiht:100%;
	overflow:hidden;
	display:block;
	text-overflow:ellipsis;
	position:relative;
}
.ellipisDefine2::after{
	content:'...'; // 超出的部分用什么内容表示
	position:absolute; // 相对于元素块为 绝对定位
	bottom:0; // 相对于元素块的定位位置
	right:0;  // 相对于元素块的定位位置
}

存在问题:元素定位位置固定,无法准确定位到文本内容最后位置

##answer3

s = '长长长文本热饿热热热热热热热'
el = document.getElementById('box');
n = el.offsetHeight;
for(i=0; i<s.length; i++) {
          el.innerHTML = s.substr(0, i);
          if(n < el.scrollHeight) {
             el.style.overflow = 'hidden';
             el.innerHTML = s.substr(0, i-3) + '...'; // 截取字符串的最后三位为...
             break;
             }
}
//TODO: 添加title属性,让鼠标悬浮的时候,能显示全部内容

存在问题:鼠标移入无法全部显示,在TODO 的地方给元素的title属性赋值为变量s的值 就可以了 el.title=s;

单行显示就简单了:

text-overflow:ellipsis;
word-wrap:no-wrap;
over-flow:hidden;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值