单行 / 多行文本溢出省略的 CSS 实现
1. 单行文本溢出省略
涉及的 CSS 属性:
overflow: hidden:普通情况下用来隐藏块级元素内部溢出,或者配合下面两个属性实现文本溢出省略。white-space: nowrap:设置文本不换行,是overflow: hidden和text-overflow: ellipsis生效的基础。text-overflow:取值有clip(裁切)和ellipsis(省略号);只在设置了overflow: hidden和white-space: nowrap后才能生效。
.single-ellipsis {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
width: 200px;
}
2. 多行文本溢出省略
多行文本溢出时分两种实现思路:
方案一:基于高度截断(兼容性最好)
.multi-ellipsis {
position: relative;
line-height: 20px;
height: 40px; /* 恰好显示 2 行 */
overflow: hidden;
}
.multi-ellipsis::after {
content: "...";
position: absolute;
bottom: 0;
right: 0;
padding: 0 20px 0 10px;
background: linear-gradient(to right, transparent, #fff 50%); /* 让省略号更自然 */
}
方案二:-webkit-line-clamp(最简洁,仅 webkit 内核)
.multi-ellipsis {
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
}
补充:
-webkit-line-clamp在 Chrome、Safari、Firefox 68+、Edge 都已支持;非 webkit 浏览器仍需要-webkit-box前缀。- 现代方案可结合
display: -webkit-box+line-clamp: 2+text-overflow: ellipsis实现"兼容性最好 + 代码最简洁"的折中。



