`

CSS文本溢出省略号:text-overflow:ellipsis及firefox兼容详解

 
阅读更多
这段js的原理很简单,就是通过不断的比较宽度值,然后逐个缩短字符宽度,当最后宽度合适的时候,停止循环,就实现了文字溢出显示…的效果。



(function($) {
        $.fn.ellipsis = function(enableUpdating){
            var s = document.documentElement.style;
            if (!('textOverflow' in s || 'OTextOverflow' in s)) {
                return this.each(function(){
                    var el = $(this);
                    if(el.css("overflow") == "hidden"){
                        var originalText = el.html();
                        var w = el.width();
  
                    var t = $(this.cloneNode(true)).hide().css({
                         'position': 'absolute',
                         'width': 'auto',
                         'overflow': 'visible',
                         'max-width': 'inherit'
                     });
                     el.after(t);
  
                     var text = originalText;
                     while(text.length > 0 && t.width() > el.width()){
                         text = text.substr(0, text.length - 1);
                         t.html(text + "...");
                     }
                     el.html(t.html());
  
                     t.remove();
  
                     if(enableUpdating == true){
                         var oldW = el.width();
                         setInterval(function(){
                             if(el.width() != oldW){
                                 oldW = el.width();
                                el.html(originalText);
                                 el.ellipsis();
                             }
                         }, 200);
                     }
                 }
             });
         } else return this;
     };
})(jQuery);

这段js还需要一段css来配合。

    .overflow {
        text-overflow: ellipsis;
        -o-text-overflow: ellipsis;
        white-space: nowrap;
        overflow: hidden;
   }
分享到:
评论
2 楼 dengli19881102 2011-07-26  
pch272215690 写道
效率不行,数据较多就会卡死。

那你有什么更好的解决方法没?
1 楼 pch272215690 2011-07-12  
效率不行,数据较多就会卡死。

相关推荐

    无js实现text-overflow: ellipsis; 完美支持Firefox

    在前端开发中,文本溢出处理是一个常见的需求,特别是当我们在设计网页时,希望限制某段文字的显示长度,超出部分用省略号(...)表示。`text-overflow: ellipsis;` 是 CSS3 提供的一个样式属性,用于处理溢出的文本...

    FF下文本溢出的text-overflow完美解决方方案

    在网页设计中,文本溢出是一个常见的问题,尤其是在Firefox(FF)浏览器中,由于其对CSS规范的特殊处理,有时会出现与其他浏览器不一致的情况。`text-overflow`属性是CSS中用于处理文本溢出的一种解决方案,它允许...

    使用text-overflow:ellipsis实现溢出文本省略号显示无需js

    总的来说,利用CSS的 `text-overflow: ellipsis` 以及相关的 `white-space` 和 `overflow` 属性,我们可以轻松地在不使用JavaScript的情况下实现文本溢出时的省略号显示,提高网页的性能和用户体验。同时,对于多行...

    使用text-overflow:ellipsis实现文字超出用省略号显示

    当文本溢出其包含元素的边界时,`text-overflow` 属性定义了应如何显示省略标记(通常是三个点 "...")。要使此属性生效,需要配合其他两个属性一起使用:`overflow` 和 `white-space`。其中,`overflow: hidden` ...

    CSS省略号text-overflow超出溢出显示省略号

    标题和描述中提到的“CSS省略号text-overflow超出溢出显示省略号”是指在CSS样式中利用`text-overflow: ellipsis;`来实现当文本内容超出指定容器的宽度时,用省略号表示被截断的文本。 `text-overflow`属性有以下几...

    用css截取字符的几种方法详解(css排版隐藏溢出文本).docx

    总结来说,CSS提供了多种方式来处理文本溢出问题,你可以根据具体需求选择合适的方法。`overflow`和`text-overflow`组合适合单行文本的截断,`white-space: nowrap`适用于保持文本在同一行,而`-webkit-line-clamp`...

    CSS实现单行、多行文本溢出显示省略号的实现方法.docx

    总结来说,CSS实现单行或多行文本溢出显示省略号的方法主要包括使用`white-space: nowrap`, `overflow: hidden`, 和 `text-overflow: ellipsis`组合,以及利用Webkit的`-webkit-line-clamp`属性和CSS渐变背景技术。...

    CSS控制html文本溢出

    CSS提供了多种方法来实现这一目标,其中一种常用的技术是通过`text-overflow`、`overflow`以及`white-space`等属性的组合来实现文本溢出时的截断与省略号显示效果。 #### 二、关键概念与属性介绍 ##### 1. `text-...

    无hack无js全兼容text-overflow-ellipsis效果

    标题中的"无hack无js全兼容text-overflow-ellipsis效果"指的是在网页设计中实现文本溢出时显示省略号的效果,而且这个方法无需使用JavaScript(js)或任何黑客(hack)技巧,并且能够兼容各种浏览器。`text-overflow: ...

    firefox下溢出部分省略号显示

    总的来说,“Firefox下溢出部分省略号显示”是CSS布局中的一项基础技巧,它结合了`overflow`、`text-overflow`和`white-space`属性,使得网页设计者能在有限的空间内优雅地展示大量文本。在实际应用中,需要考虑...

    浅析CSS3 用text-overflow解决文字排版问题

    text-overflow的使用需配合hight,over-flow:hidden;white-space:nowrap;三个属性共同使用 text-overflow: clip;ellipsis;string clip: 直接隐藏不显示 ellipse: 用… 三个点来表示溢出的文字 (常用) string:可...

    CSS文本超出2行就隐藏并且显示省略号

    //溢出用省略号显示 white-space:nowrap; //溢出不换行 但是第三条属性,只能显示一行,不能用在这里,那么如果显示多行呢? 超出两行隐藏: css3解决了这个问题,解决方法如下: display:-webkit-box; //将对象作为...

    CSS属性text-overflow的使用问题

    在CSS中,`text-overflow`属性用于处理文本溢出的情况,它允许你定义当文本在有限的容器内无法完全显示时如何展示超出部分。在标题和描述中提到的,`text-overflow`通常需要与`overflow`和`white-space`属性结合使用...

    CSS实现单行、多行文本溢出显示省略号的实现方法.pdf

    总的来说,CSS实现单行、多行文本溢出显示省略号涉及到多种技术,包括`text-overflow`、`-webkit-line-clamp`、伪元素`::after`和背景渐变等。在实际应用中,需要根据项目需求和目标浏览器的兼容性选择合适的方法。

    HTML超出文本显示省略号...通过text-overflow实现

    `text-overflow`是一个非常实用的样式规则,它可以控制当元素内的文本溢出其边界时如何处理。在标题和描述中提到的,这个功能在展示新闻列表等场景中特别常见,因为它能够有效地节省空间并引导用户点击以查看完整...

    css文本换行属性word-wrap和white-space使用总结

    今天碰到了td文字内容不换行,发现是:white-space: nowrap,即强制文本不进行换行,顺便看了一下文本换行的属性word-wrap,总结如下: white-space的默认只是normal,自动换行。 word-break:break-all和word-wrap:...

    移动端的text-overflow多行文本溢出显示省略号(…)

    在移动端,`text-overflow: ellipsis` 属性常用于单行文本溢出时显示省略号,但其本身并不支持多行文本的处理。本文将探讨如何在不同场景下实现多行文本溢出显示省略号的效果。 首先,对于基于WebKit的浏览器(如...

    纯css控制超出部分省略号显示

    ### 纯CSS控制超出部分省略号显示 在网页设计与开发中,经常会遇到文本长度不可预知的情况,特别是当容器的宽度固定时,如何优雅地处理超出部分的文本展示就显得尤为重要。本文将详细介绍如何仅使用CSS来实现文本...

Global site tag (gtag.js) - Google Analytics