CSS 控制文字的溢出和多行截断效果,可以利用以下属性:overflow、text-overflow 和 white-space。
overflow 属性: 这个属性可以控制元素内部溢出内容的显示方式。值为 hidden 时,会将超出部分隐藏;值为 scroll 时,会在元素内创建滚动条;值为 auto 时,如果有需要,会自动创建滚动条。
text-overflow 属性:当文本溢出容器时,这个属性规定了应该如何显示省略号(“...”)。常见的属性取值是 ellipsis ,即在文本溢出时显示省略号。
white-space 属性:这个属性描述了如何处理元素中的空白符。值为 normal 时,合并连续的空白符,并在必要时换行;值为 nowrap 时,忽略所有的空白符;值为 pre-wrap 时,保留所有空白符,但会在必要时换行。
举个例子,假设有一个 div 元素,我们希望其中的文本溢出容器时显示省略号,同时限制只显示两行,可以在 CSS 中这样设置:
div {
width: 200px; /* 容器宽度 */
height: 40px; /* 容器高度 */
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2; /* 行数 */
white-space: normal;
}
注意,为了限制显示行数,还需要使用 vendor prefix -webkit-,因为这个特性目前仍然是 WebKit 浏览器私有的。
通过以上设置,当 div 中文本溢出时,会自动显示省略号,并且只会显示两行的文本内容。