2019-07-17
描述
如果文本的长度大于一行,那么他将在第 n
行被一个渐变的效果截断。
HTML
<p class="truncate-text-multiline">
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut
labore et.
</p>
CSS
.truncate-text-multiline {
overflow: hidden;
display: block;
height: 109.2px;
margin: 0 auto;
font-size: 26px;
line-height: 1.4;
width: 400px;
position: relative;
background-color: #f5f6f9;
padding: 0 10px;
}
.truncate-text-multiline:after {
content: '';
position: absolute;
bottom: 0;
right: 0;
width: 150px;
height: 36.4px;
background: linear-gradient(to right, rgba(0, 0, 0, 0), #f5f6f9 50%);
}
Demo
说明
overflow: hidden
可以阻止文本溢出他的范围(对于一个块元素来说,宽度为 100%,高度为 auto)width: 400px
确定元素有一个范围height: 109.2px
计算出来的高度,他等于font-size * line-height * numberOfLines
(在此列中为26 * 1.4 * 3 = 109.2
)height: 36.4px
计算除的渐变高度,他等于font-size * line-height
(在此列中为26 * 1.4 = 36.4
)background: linear-gradient(to right, rgba(0, 0, 0, 0), #f5f6f9 50%)
背景色从transparent
变为#f5f6f9
浏览器支持
支持率:97.5%
支持情况:https://caniuse.com/#feat=css-gradients