蓝戒博客

  • 首页
  • 研发说
  • 架构论
  • 效能录
  • AI谈
  • 随笔集
智构苍穹
AI为翼,架构为骨,文化为魂,实践探新境,价值筑长青。
  1. 首页
  2. 研发说
  3. 正文

css多行文本溢出显示省略号(…)解决方案

2015年8月26日 10169点热度 0人点赞 0条评论

单行文本溢出的解决方法我们知道通常是使用text-overflow:ellipsis属性来实现单行文本的溢出显示省略号(…)。当然部分浏览器还需要加宽度width属性,保险起见凡是要溢出的显示省略号的我们都要设置好宽,高。
单行文本溢出省略号css代码方案如下:

width:500px;
height:40px;
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;

由于是做移动端页面遇到的多行文本溢出显示省略号(…)的问题,所以先介绍一下适用于移动端的我大css3的高级属性的实现方法:
在WebKit浏览器或移动端(绝大部分是WebKit内核的浏览器)的页面实现比较简单,可以直接使用WebKit的CSS扩展属性(WebKit是私有属性)-webkit-line-clamp ;
注意:这是一个 不规范的属性(unsupported WebKit property),它没有出现在 CSS 规范草案中。
-webkit-line-clamp用来限制在一个块元素显示的文本的行数。 为了实现该效果,它需要组合其他的WebKit属性。
组合属性解决css3方案:

display: -webkit-box; /*必须结合的属性 ,将对象作为弹性伸缩盒子模型显示*/
-webkit-box-orient /*必须结合的属性 ,设置或检索伸缩盒对象的子元素的排列方式*/

text-overflow: ellipsis; /*可以用来多行文本的情况下,用省略号“…”隐藏超出范围的文本*/

overflow : hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;

这个属性比较合适WebKit浏览器或移动端(绝大部分是WebKit内核的)浏览器。 比较靠谱简单的做法就是设置相对定位的容器高度,用包含省略号(…)的元素模拟实现;

下面整理一个跨浏览器兼容的解决方案:

p { position:relative; line-height:1.4em; /* 3 times the line-height to show 3 lines*/height:4.2em; overflow:hidden; }

p::after { content:"..."; font-weight:bold; position:absolute; bottom:0; right:0; padding:0 20px 1px 45px; background:url(http://css88.b0.upaiyun.com/css88/2014/09/ellipsis_bg.png) repeat-y; }

话说这样就可以了吗,no,还有可恶的ie,注意:IE6-7不显示content内容,所以要兼容IE6-7可以是在内容中加入一个标签,比如用...去模拟;
要支持IE8,需要将::after替换成:after;

另外整理js解决方案,用js也可以根据上面的思路去模拟,推荐几个做类似工作的小插件:
1.Clamp.js
下载及文档地址:https://github.com/josephschmitt/Clamp.js
使用也非常简单:

var module = document.getElementById("clamp-this-module");
$clamp(module, {clamp: 3});

2.jQuery插件-jQuery.dotdotdot

$(document).ready(function() {
$("#wrapper").dotdotdot({
// configuration goes here
});
});

jQuery限制字符字数的方法:

<script>
$(function() {
$(".task_con_l p").each(function() {
var maxwidth = 150;
if ($(this).text().length > maxwidth) {
$(this).text($(this).text().substring(0, maxwidth));
$(this).html($(this).html() + '......');
}
});
});
</script>

标签: css css3 文本溢出
最后更新:2025年9月12日

cywcd

我始终相信,技术不仅是解决问题的工具,更是推动思维进化和创造价值的方式。从研发到架构,追求极致效能;在随笔中沉淀思考,于 AI 中对话未来。

打赏 点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

cywcd

我始终相信,技术不仅是解决问题的工具,更是推动思维进化和创造价值的方式。从研发到架构,追求极致效能;在随笔中沉淀思考,于 AI 中对话未来。

最新 热点 随机
最新 热点 随机
npm 安全更新:把握令牌变更与发布体系的迁移参考指南 TresJS:用 Vue 构建现代化交互式 3D 体验 i18n 高效实现方案:前端国际化神器安利一波 前端国际化 i18n 实践:从项目到组件库的全链路方案 GEO(生成引擎优化)完整指南:AI 搜索时代的企业内容新机会 NativeScript:用 JavaScript / TypeScript 构建真正的原生应用
前端开源工具 PinMe:极简部署体验分享大屏适配的核心痛点与一行 autofit 解决方案markdown-exit:现代化的 Markdown 解析工具Lerna + Monorepo:前端多仓库管理的最佳实践CrewAI:基于角色协作的 AI Agent 团队框架浅析2025 最推荐的 uni-app 技术栈:unibest + uView Pro 高效开发全攻略
js鼠标滑到图片上显示渐变弹出大图 Js函数节流(throttle)和函数防抖(debounce)知多少 原生js写ajax请求(兼容各主流浏览器) React-Native学习指南 nec自适应布局解决方案 构建高效 AI 工作流的工程化实践
最近评论
渔夫 发布于 1 个月前(11月05日) 学到了,感谢博主分享
沙拉小王子 发布于 8 年前(11月30日) 适合vue入门者学习,赞一个
沙拉小王子 发布于 8 年前(11月30日) 适合vue入门者学习,赞一个
cywcd 发布于 9 年前(04月27日) 请参考一下这篇文章http://www.jianshu.com/p/fa4460e75cd8
cywcd 发布于 9 年前(04月27日) 请参考一下这篇文章http://www.jianshu.com/p/fa4460e75cd8

COPYRIGHT © 2025 蓝戒博客_智构苍穹-专注于大前端领域技术生态. ALL RIGHTS RESERVED.

京ICP备12026697号-2