揭秘CSS(第 1 版)
3.2.15 文本溢出
阅读(

概述

CSS选择器

字体和文本

字体

文本

单词换行

单词折行

处理空白符

文本方向

文本阴影

文本装饰

文本转换

单词间距

字符间距

垂直对齐

行高

水平对齐

水平对齐

文本缩进

文本溢出

text-overflow属性用来设置容器内的文本溢出时,如何处理溢出的内容,取值为 clip | ellipsis,默认值为 clip。

clip 表示文本溢出时,简单的把溢出的部分裁剪掉;ellipsis 表示文本溢出时,在溢出的地方显示一个省略标记(…)。

在使用 text-overflow属性时,一定要给容器定义宽度,否则,文本只会撑开容器,而不会溢出。

事实上,text-overflow属性只能定义文本溢出时的效果,并不具备其它样式功能。所以,无论 text-overflow属性取值是 clip,还是 ellipsis,要让 text-overflow属性生效,必须强制文本在一行内显示(white-space: nowrap),同时隐藏溢出的内容(overflow: hidden)。

如果省略 overflow: hidden,文本会横向溢出容器的外面;如果省略 white-space: nowrap,文本在横向到达容器边界时,会自动换行,即便定义了容器的高度,也不会出现省略号,而是把多余的文本裁切掉;如果省略 text-overflow: ellipsis,多余的文本会被裁切掉,就相当于 text-overflow: clip。

下面给出未设置 text-overflow属性、text-overflow属性取值为 clip 和 ellipsis 时的效果对比。CSS代码如下:

p {
   width: 304px; 
   height: 18px;
   line-height: 14px;
   font-family: Arial;
   font-size: 14px;
   border:1px solid #444;
}
.clip {
    text-overflow: clip;
}
.ellipsis {
    text-overflow: ellipsis;
}
.clip, .ellipsis {
    overflow: hidden;
    white-space: nowrap;
}

HTML代码如下:

<p>未设置 text-overflow属性时,文本完整显示,可能会溢出容器</p>
<p class="clip">text-overflow属性取值clip时,文本溢出时,只是简单的把溢出的部分裁剪掉</p>
<p class="ellipsis">text-overflow属性取值ellipsis时,文本溢出时,在溢出的地方显示一个省略号</p>

上述代码定义了三个 p 容器,第一个未定义 text-overflow、overflow、white-space 属性,第二个定义 text-overflow属性取值为 clip,第二个定义 text-overflow属性取值为 ellipsis。为了方便看清楚容器的边界,为li定义了高度,同时添加了边框。运行效果如图 3‑27 所示:

text-overflow属性运行效果
图3-27 text-overflow属性运行效果

从上图可以看出,第一个段落的内容完整显示但溢出到容器的外边,第二个段落只是简单的把溢出的部分裁剪掉,第三个段落在溢出的地方显示了一个省略号。

关于作者

歪脖先生,十五年以上软件开发经验,酷爱Web开发,精通 HTML、CSS、JavaScript、jQuery、JSON、Python、Less、Bootstrap等,著有《HTML宝典》、《揭秘CSS》、《Less简明教程》、《JSON教程》、《Bootstrap2用户指南》、《Bootstrap3实用教程》,并全部在 GitHub 上开源。

如果本教程对您帮助很大,请随意打赏。您的支持,将鼓励我写出更好的教程!

← 键盘方向键翻页 →
返回顶部 手机访问 关注微信 返回底部

扫码访问歪脖网

随时随地,想看就看

关注歪脖网微信

分享 web 知识、交流 web 经验