您的位置:首页 > 其它

多行文本溢出显示省略号 多行文本折行省略并存

2016-07-18 18:00 435 查看
最近在项目的制作过程中遇到超出需要折行的问题

如果是一行超出

overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;

问题

如果是两行显示,第一行折行,第二行需要超出省略该如何实现呢?

或者第N行要省略该如何解决呢?如果是两行显示,第一行折行,第二行需要超出省略该如何实现呢?

解决

解决方案1 css 的不规则属性解决

-webkit-line-clamp
是一个不规则属性,不出现在css 草案中。用来实现块级元素显示几行,它需要与其他元素组合使用

display:-webkit-box;
-webkit-box-orient: vertical; // 从上向下垂直排列子元素。设置或检索伸缩盒对象的子元素的排列方式 。
text-overflow: ellipsis; //文本溢出 用省略号显示
-webkit-line-clamp: 2;
overflow: hidden;

当然也需要设置高度来配合显示

解决方案2 css 的伪类实现

对要显示的文字进行相对定位

对省略号进行绝对定位

p {
position: relative;
line-height: 1.4em;
height: 4.2em // 1.4 *3 显示三行的 所有高度是行高的三倍
overflow: hidden;
}

p::after {
content: '...',
position: absolute,
bottom: 0;
right: 0;
padding: 5px;
}

demo https://jsfiddle.net/mayufo/xv3wub7s/1/

解决方案3:js解决方法

Clamp.js 这个就不具体展开了

可以参考demo http://codepen.io/feiwen8772/pen/AckqK

参考

http://www.css88.com/webkit/-webkit-appearance/

http://www.w3school.com.cn/tiy/t.asp?f=css3_box-orient

http://www.520ued.com/article/54192b4b8d31c11e3b000400
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: