← CSS 文本效果 CSS text-align 属性 →

CSS text-overflow 属性

原创 2025-09-07 CSS 已有人查阅

CSS text-overflow 属性详解

概述

CSS text-overflow 属性用于控制当文本内容溢出其容器时的显示方式。该属性通常与 white-space: nowrap 和 overflow: hidden 属性配合使用,共同实现文本溢出的处理效果。

语法结构

selector {
    text-overflow: clip | ellipsis | string | initial | inherit;
}

属性值说明

1. clip(默认值)

  • 功能:裁剪溢出的文本内容,直接截断不显示任何标记

  • 适用场景:需要简单裁剪且不提示用户有更多内容时

.clip-example {
    white-space: nowrap;
    width: 200px;
    overflow: hidden;
    text-overflow: clip;
    border: 1px solid #ddd;
}

2. ellipsis

  • 功能:使用省略号(...)表示被截断的文本

  • 适用场景:最常见的使用方式,明确提示用户内容被截断

.ellipsis-example {
    white-space: nowrap;
    width: 200px;
    overflow: hidden;
    text-overflow: ellipsis;
    border: 1px solid #ddd;
}

3. string

  • 功能:使用自定义字符串表示截断内容

  • 浏览器支持:目前主流浏览器支持有限

  • 适用场景:需要特殊标记表示内容截断时

.string-example {
    white-space: nowrap;
    width: 200px;
    overflow: hidden;
    text-overflow: "→";
    border: 1px solid #ddd;
}

4. initial

  • 功能:设置属性为默认值(clip)

  • 适用场景:重置继承的属性值

5. inherit

  • 功能:继承父元素的 text-overflow 属性值

  • 适用场景:需要与父元素保持一致的溢出处理方式

浏览器兼容性

浏览器 版本支持
Chrome 1.0+
Edge 12.0+
Firefox 7.0+
Internet Explorer 6.0+
Opera 9.0+
Safari 1.3+

实践示例

示例1:基础文本溢出处理

<!DOCTYPE html>
<html>
<head>
    <title>代码号 - CSS text-overflow 学习示例</title>
    <style>
        .container {
            width: 300px;
            padding: 20px;
            background-color: #f9f9f9;
            border-radius: 8px;
            margin: 0 auto;
        }
        
        .text-box {
            white-space: nowrap;
            overflow: hidden;
            margin: 10px 0;
            padding: 8px;
            background-color: white;
            border: 1px solid #e0e0e0;
        }
        
        .clip-box {
            text-overflow: clip;
            width: 150px;
        }
        
        .ellipsis-box {
            text-overflow: ellipsis;
            width: 150px;
        }
    </style>
</head>
<body>
    <div class="container">
        <h3>代码号编程学习:text-overflow 属性演示</h3>
        
        <p>clip 值效果:</p>
        <div class="text-box clip-box">
            欢迎访问代码号编程学习平台,这里有丰富的教程资源
        </div>
        
        <p>ellipsis 值效果:</p>
        <div class="text-box ellipsis-box">
            欢迎访问代码号编程学习平台,这里有丰富的教程资源
        </div>
    </div>
</body>
</html>

示例2:表格中的文本溢出处理

<!DOCTYPE html>
<html>
<head>
    <title>代码号 - 表格文本溢出处理</title>
    <style>
        table {
            width: 100%;
            border-collapse: collapse;
            margin: 20px 0;
        }
        
        th, td {
            border: 1px solid #ddd;
            padding: 8px;
            text-align: left;
        }
        
        .truncate-cell {
            max-width: 200px;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        
        .course-table {
            width: 80%;
            margin: 0 auto;
            background-color: #fff;
            box-shadow: 0 2px 5px rgba(0,0,0,0.1);
        }
    </style>
</head>
<body>
    <div style="padding: 20px;">
        <h3>代码号课程列表</h3>
        <table class="course-table">
            <thead>
                <tr>
                    <th width="40%">课程名称</th>
                    <th width="60%">课程描述</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>HTML5 基础教程</td>
                    <td class="truncate-cell">本课程详细讲解HTML5的新特性和基本用法,包括语义化标签、表单增强功能等</td>
                </tr>
                <tr>
                    <td>CSS3 高级编程</td>
                    <td class="truncate-cell">深入学习CSS3的动画、过渡、变换等高级特性,实现精美的页面效果</td>
                </tr>
            </tbody>
        </table>
    </div>
</body>
</html>

多行文本溢出处理

虽然 text-overflow 属性本身只适用于单行文本,但我们可以结合其他CSS特性实现多行文本的溢出处理:

.multiline-ellipsis {
    display: -webkit-box;
    -webkit-line-clamp: 3; /* 限制行数 */
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
}

本节课程知识要点

  1. text-overflow 必须与 white-space: nowrap 和 overflow: hidden 配合使用

  2. ellipsis 是最常用的值,提供用户友好的省略提示

  3. 考虑浏览器兼容性,特别是 string 值的支持有限

  4. 对于多行文本溢出,需要使用其他CSS技术结合实现

  5. 在实际项目中,确保溢出处理不会影响内容的可访问性

常见应用场景

  1. 导航菜单:当菜单项文字过长时使用省略号

  2. 表格单元格:保持表格整齐的同时显示重要信息

  3. 卡片式布局:在有限空间内展示内容摘要

  4. 响应式设计:在不同屏幕尺寸下合理处理文本内容

通过合理使用 text-overflow 属性,可以提升界面的美观性和用户体验,特别是在空间有限的场景中有效展示重要信息。

← CSS 文本效果 CSS text-align 属性 →
分享笔记 (共有 篇笔记)
验证码:
微信公众号