css内容省略——text-overflow: ellipsis

发布于:2025-05-11 ⋅ 阅读:(17) ⋅ 点赞:(0)

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>

关键点总结

  1. 必须配合的属性
    • white-space: nowrap(单行)
    • overflow: hidden
    • 固定宽度或最大宽度
  2. 多行省略的限制
    • 使用 -webkit-line-clamp(非标准属性但广泛支持)
    • 需要 display: -webkit-boxdisplay: -webkit-inline-box
  3. 浏览器兼容性
    • 单行省略:所有主流浏览器支持
    • 多行省略:现代浏览器支持(Chrome, Safari, Edge, Firefox 68+)

网站公告

今日签到

点亮在社区的每一天
去签到