最近在项目的制作过程中遇到超出需要折行的问题
如果是一行超出
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