CSS文本超出部分利用省略代替

本文介绍了如何使用CSS属性处理文本溢出的情况,包括单行和多行文本的处理方法。通过设置`text-overflow`、`overflow`及`white-space`等属性,可以有效地控制文本的显示方式。

一、操作

  我们经常在写页面的时候会碰到文字内容太多超过盒子内容对于这种情况我们常常会用overflow:hidden来隐藏,但是今天就要告诉大家一个新的小知识点,我们可以用它将超出部分的文章隐藏,并用省略号来代替,代码如下:

/*单行*/
span {
  overflow: hidden;
  white-space:nowrap;
  text-overflow: ellipsis;
}
/*多行*/
span {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3; // 此行用于控制从多少行开始,溢出时用省略号替换
    overflow: hidden;
    word-break:break-all; // 自动换行
}

二、属性介绍 

  1. CSS text-overflow 属性
    描述
    clip修剪文本。
    ellipsis显示省略符号来代表被修剪的文本。
    string使用给定的字符串来代表被修剪的文本。
  2. CSS overflow 属性
    描述
    visible默认值。内容不会被修剪,会呈现在元素框之外。
    hidden内容会被修剪,并且其余内容是不可见的。
    scroll内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。
    auto如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。
    inherit规定应该从父元素继承 overflow 属性的值。
  3. CSS white-space 属性
    描述
    normal默认。空白会被浏览器忽略。
    pre空白会被浏览器保留。其行为方式类似 HTML 中的 <pre> 标签。
    nowrap文本不会换行,文本会在在同一行上继续,直到遇到 <br> 标签为止。
    pre-wrap保留空白符序列,但是正常地进行换行。
    pre-line合并空白符序列,但是保留换行符。
    inherit规定应该从父元素继承 white-space 属性的值。
### 文本溢出显示省略号的最佳实践 为了实现文本溢出时显示省略号的效果,可以通过 CSS 的 `text-overflow` 属性配合其他相关属性来完成。以下是针对单行和多行文本溢出的具体方法。 #### 单行文本溢出 对于单行文本溢出的情况,可以使用以下 CSS 属性组合: ```css .ellipsis { white-space: nowrap; /* 防止文本换行 */ overflow: hidden; /* 超出容器的部分隐藏 */ text-overflow: ellipsis; /* 显示省略号代替被修剪的文本 */ width: 200px; /* 设置固定的宽度或最大宽度 */ } ``` HTML 示例代码如下: ```html <div class="ellipsis"> 这是一个示例文本,用于展示如何使用 CSS 实现文本溢出时显示省略号。 </div> ``` 上述代码通过设置 `white-space: nowrap` 和 `overflow: hidden` 来控制文本的行为,并利用 `text-overflow: ellipsis` 将超出部分替换为省略号[^2]。 --- #### 多行文本溢出 如果需要处理多行文本溢出,则需要用到 `-webkit-line-clamp` 属性以及一些额外的样式支持: ```css .multi-line-ellipsis { display: -webkit-box; /* 使用弹性盒子模型 */ -webkit-box-orient: vertical; /* 垂直排列子元素 */ -webkit-line-clamp: 3; /* 控制显示的最大行数(此处为3行)*/ overflow: hidden; /* 超过指定行数的内容隐藏 */ text-overflow: ellipsis; /* 添加省略号效果 */ width: 25%; /* 容器宽度可以根据需求调整 */ } ``` 对应的 HTML 结构如下: ```html <div class="multi-line-ellipsis"> 这是一段较长的文本,用于测试多行文本溢出时显示省略号的功能。这是一段较长的文本,用于测试多行文本溢出时显示省略号的功能。 </div> ``` 这里的关键在于 `-webkit-line-clamp` 属性,它能够限定容器内的文本行数并自动截断多余内容,同时结合 `text-overflow: ellipsis` 达到理想的视觉效果[^4]。 --- ### 总结 无论是单行还是多行文本溢出,都需要合理配置以下几个核心属性: 1. **`white-space`**: 确定文本是否允许换行; 2. **`overflow`**: 指定当内容超出了其容器范围时该如何表现; 3. **`text-overflow`**: 设定溢出区域中的文字替代方式; 4. 对于多行情况还需要引入 **`display: -webkit-box`**, **`-webkit-box-orient: vertical`** 和 **`-webkit-line-clamp`** 来进一步定义行为。 以上即为最佳实践中推荐使用的方案[^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值