css内容省略——text-overflow: ellipsis
title: css内容省略
date: 2025-05-07 19:41:17
tags: css
text-overflow: ellipsis
text-overflow: ellipsis用于在文本溢出容器时显示省略号(…)
1.单行省略
<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>单行文本省略示例</title><style>.ellipsis {width: 200px;white-space: nowrap; /* 禁止换行 */overflow: hidden; /* 隐藏溢出内容 */text-overflow: ellipsis; /* 显示省略号 */border: 1px solid #ccc;padding: 8px;margin: 20px 0;}</style>
</head>
<body><div class="ellipsis">这是一段很长的文本内容,当超出容器宽度时会显示省略号...</div><div class="ellipsis">短文本</div>
</body>
</html>
2.多行文本省略(CSS3方法)
<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>多行文本省略示例</title><style>.multiline-ellipsis {width: 300px;display: -webkit-box; /* 老版本语法 */-webkit-line-clamp: 3; /* 显示行数,超过就在第三行末尾显示省略号 */-webkit-box-orient: vertical; /* 垂直排列 */overflow: hidden; /* 隐藏溢出 */text-overflow: ellipsis; /* 显示省略号 */border: 1px solid #ccc;padding: 8px;margin: 20px 0;line-height: 1.5;}</style>
</head>
<body><div class="multiline-ellipsis">这是一段很长的多行文本内容。当文本超过指定的行数时,会在最后一行显示省略号。这个方法使用了CSS3的-webkit-line-clamp属性,目前在现代浏览器中支持良好。需要注意这是非标准属性,但在实际项目中广泛使用。</div>
</body>
</html>
3.表格单元格中的文本省略
<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>表格文本省略示例</title><style>table {width: 400px;border-collapse: collapse;margin: 20px 0;}th, td {border: 1px solid #ddd;padding: 8px;}.ellipsis-cell {max-width: 150px;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;}</style>
</head>
<body><table><tr><th>ID</th><th>产品名称</th><th>描述</th></tr><tr><td>1</td><td>笔记本电脑</td><td class="ellipsis-cell">这是一款高性能笔记本电脑,配备最新处理器和大容量内</td></tr><tr><td>2</td><td>智能手机</td><td class="ellipsis-cell">最新款智能手机,具有超高像素摄像头和长续航电池</td></tr></table>
</body>
</html>
4. 响应式设计中的文本省略
<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>响应式文本省略示例</title><style>.responsive-ellipsis {width: 100%;max-width: 400px;margin: 20px auto;padding: 15px;background: #f5f5f5;border-radius: 4px;}.responsive-ellipsis h3 {white-space: nowrap;overflow: hidden;text-overflow: ellipsis;margin-bottom: 10px;}.responsive-ellipsis p {display: -webkit-box;-webkit-line-clamp: 3;-webkit-box-orient: vertical;overflow: hidden;text-overflow: ellipsis;line-height: 1.5;}@media (max-width: 480px) {.responsive-ellipsis p {-webkit-line-clamp: 2;}}</style>
</head>
<body><div class="responsive-ellipsis"><h3>这是一个非常非常长的标题,在小屏幕上会被截断并显示省略号</h3><p>这里是详细内容描述。在较大的屏幕上,我们会显示最多3行文本,超过部分显示省略号。而在移动设备上(宽度小于480px),我们只显示2行文本。这样可以确保在不同设备上都有良好的阅读体验,同时保持布局整洁。</p></div>
</body>
</html>
关键点总结
- 必须配合的属性:
white-space: nowrap
(单行)overflow: hidden
- 固定宽度或最大宽度
- 多行省略的限制:
- 使用
-webkit-line-clamp
(非标准属性但广泛支持) - 需要
display: -webkit-box
或display: -webkit-inline-box
- 使用
- 浏览器兼容性:
- 单行省略:所有主流浏览器支持
- 多行省略:现代浏览器支持(Chrome, Safari, Edge, Firefox 68+)