CSS 省略号的故事

本文介绍如何使用CSS属性实现网页中文字超出部分以省略号展示的效果。通过设置overflow:hidden、white-space:nowrap及text-overflow:ellipsis三个属性,可以有效控制文本在容器内的显示方式。

最近看某些页面可以把未显示完全的字显示成省略号,十分心动,部署到测试服务器上却发现不成,一度以为不支持。


研究半天终于搞明白怎么实现了。

这东西需要

1 overflow:hidden

2 white-space:nowrap

3 text-overflow:ellipsis 

### CSS 实现文本溢出显示省略号的方法 #### 单行文本溢出显示省略号 为了实现单行文本溢出时显示省略号的效果,可以使用以下 CSS 属性组合: ```css .single-line-ellipsis { white-space: nowrap; /* 禁止文本换行 */ overflow: hidden; /* 隐藏超出容器的内容 */ text-overflow: ellipsis; /* 超出部分用省略号代替 */ width: 200px; /* 设置固定宽度以便观察效果 */ border: 1px solid #ccc; /* 边框可选,用于可视化边界 */ } ``` 对应的 HTML 示例: ```html <div class="single-line-ellipsis"> 这是一段较长的文本,当其超过指定宽度时会自动截断并显示省略号。 </div> ``` 这种方法的核心在于 `white-space: nowrap` 将文本限制为单行[^4]。 --- #### 多行文本溢out显示省略号 对于多行文本溢出的情况,标准浏览器支持有限,通常需要借助 `-webkit-line-clamp` 来实现。以下是具体的实现方式: ```css .multi-line-ellipsis { display: -webkit-box; /* 使用弹性盒子模型 */ -webkit-box-orient: vertical; /* 设置子元素垂直排列 */ -webkit-line-clamp: 3; /* 控制最大显示行为3行 */ overflow: hidden; /* 隐藏多余内容 */ text-overflow: ellipsis; /* 添加省略号 */ line-height: 1.5em; /* 行高设置 */ max-height: 4.5em; /* 计算总高度以匹配行数 */ width: 300px; /* 宽度限定便于测试 */ } ``` 对应的 HTML 示例: ```html <div class="multi-line-ellipsis"> 这是一个多行文本示例。当文本超出三行时,它会被截断,并在最后一行末尾显示省略号。这种技术广泛应用于新闻摘要或其他需要简洁描述的地方。 </div> ``` 这里的关键属性是 `-webkit-line-clamp`,它可以定义最多显示几行文字[^3]。 --- #### 替代方法:伪元素实现省略号 如果不希望依赖特定前缀或者兼容性较差的属性,还可以通过伪元素手动添加省略号。例如: ```css .manual-ellipsis { position: relative; width: 300px; border: 1px solid gray; white-space: nowrap; overflow: hidden; } .manual-ellipsis::after { content: "..."; /* 自定义省略符 */ position: absolute; right: 0; bottom: 0; } ``` 此方法虽然简单,但不具有自动化特性,仅适用于静态内容或特殊设计需求[^3]。 --- ### 注意事项 1. **跨浏览器兼容性**:尽管现代主流浏览器普遍支持上述方法,但对于老旧版本(如 IE 浏览器),可能需要额外处理。 2. **响应式设计**:建议结合媒体查询调整容器尺寸和字体大小,确保不同设备上的良好表现。 3. **动态内容适配**:如果页面涉及大量动态生成的数据,应考虑 JavaScript 或其他前端框架辅助计算最佳展示形式。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值