• [转]关于文字内容溢出用点点点(...)省略号表示


    1.常规css方法——可以实现IE,Safari,chrome,opera浏览器下文字溢出省略号表示

    这是一段测试文字,主要是用来测试文字溢出后是否会用…
    .zxx_text_overflow_1{27em; white-space:nowrap; text-overflow:ellipsis; -o-text-overflow:ellipsis; overflow:hidden;}
    

    2.使用ellipsis.xml文件使Firefox支持文字溢出后点点点省略号表示

    这段代码调用了跨文件夹路径的ellipsis.xml文件,看Firef…

    ps: 在Firefox下上面div内容显示空白,此div内容是:“这段代码添加了跨文件夹路径的ellipsis.xml文件,看Firefox浏览器下是够文字溢出省略号表示”。

    .zxx_text_overflow_2{27em; white-space:nowrap; text-overflow:ellipsis; -o-text-overflow:ellipsis; -moz-binding:url('../xml/ellipsis.xml#ellipsis'); overflow:hidden;}
    这段代码调用了同文件夹路径的ellipsis.xml文件,看Firef…

    ps: 在Firefox下上面div文字溢出省略号显示,此div内容是“这段代码调用了同文件夹路径的ellipsis.xml文件,看Firefox浏览器下是够文字溢出省略号表示”。至此,几乎所有主流浏览器都实现文字溢出省略号表示。

    .zxx_text_overflow_3{27em; white-space:nowrap; text-overflow:ellipsis; -o-text-overflow:ellipsis; -moz-binding:url('ellipsis.xml#ellipsis'); overflow:hidden;}

    这里有个小结论:这个使Firefox浏览器下文字溢出省略号表示的ellipsis.xml文件要在页面的同一目录下,或是下一级目录下(我已测试),要是向上跨文件夹访问或绝对路径访问则失效。原因不详!

    3.使用:after伪类和content实现文字溢出后省略号表示(严重不推荐!直接跳过)

    愤慨:我实在忍不住了,我要臭骂一通。我很久之前就自己试过content实现后面的省略号表示,发现问题很多,遂想了其他方法。

    今天我本想找以前一位兄弟使用图片实现类似效果的方法,发现网上突然出现了标题“为兼容IE,FF文字溢出省略号显示的文章”,其实就一篇,很多我很鄙视的教程网站都有(正好打上了热门关键字啊)。

    我原本试试介绍这个方法的,但是我实在做不下去了!这个方法根本不行,一点都不行!要是N年前,只有IE6和Firefox浏览器的时候,这个方法或许可以试试。现在根本不行,在现在看来,写文章的人就是个大草包,要么是个史前时代过来的程序员,文章里面错误一大堆,用胡说八道形容一点都不为过,很多东西根本没有经过验证就那儿大放厥词。1、说是兼容,其实反而大大破坏了兼容性,IE6和IE7下的表现就不一样,一句IE“不支持max-width”就让我想给作者扇个耳光,IE7不支持吗,别告诉我你写这文章时还没有IE7浏览器。2、本来chrome浏览器,Safari还有opera可以实现文字溢出省略号显示的,现在受限与:after和content,就会一处理不当,文字直接被截,就很丑了。3、多套用了一层标签,css也多了好几行,没有必要,资源消耗高。4、当文字很短时后面也还跟着个省略号,没有溢出为什么还要显示省略号呢?

    总之,结论就是这个方法一点点实用价值都没有。所以严重不推荐!

    4.我自己想出来的方法:margin负值定位法——兼容所有主流浏览器

    这是一个比较短的文字。
    这是一段比较长的文字,用来测试是否文字溢…

    HTML部分: 
    <div class="zxx_text_overflow_4"> <div class="text_con">这是一段比较长的文字,用来测试是否文字溢出时会用省略号显示。</div> <div class="text_dotted"></div> </div>
    CSS部分:
    .zxx_text_overflow_4{24em; height:1.3em; overflow:hidden; zoom:1;}
    .zxx_text_overflow_4 .text_con{float:left; height:1.3em; margin-right:3em; overflow:hidden;}
    .zxx_text_overflow_4 .text_dotted{3em; height:1.31em; float:right; margin-top:-1.3em;}

    简要说明:此方法兼容IE6,IE7,IE8,Firefox,chrome,Safari,opera浏览器。没有hack,没有生僻的css样式。文字短时,没有省略号,文字溢出时就出现省略号。可以说是相当不错的一个方法。原理也很简单:当文字内容足够长时就把隐藏在上面的省略号层给挤下来了。关键就是点点点所在div层的高度的绝对值要比其margin的绝对值大那么一点点。

    5.jQuery限制字符字数的方法

    我的文字个数较少,不要杀我!
    你个杀千刀的,怎么写了这么多的文字,我要被拦腰...
    HTML部分: 
    <div class="zxx_text_overflow_5">你个杀千刀的,怎么写了这么多的文字,我要被拦腰截断了啊,天啊!</div>
    
    没有css啦,只有js代码: 
    $(document).ready(function(){ //限制字符个数 
    $(".zxx_text_overflow_5").each(function(){
    var maxwidth=23;
    if($(this).text().length>maxwidth){
    $(this).text($(this).text().substring(0,maxwidth));
    $(this).html($(this).html()+'...');
    }
    });
    });

    6.jQuery自动判断宽度是否超出的方法

    我的文字个数较少,不要杀我!
    你个杀千刀的,怎么写了这么多的文字,我要被拦腰截断...
    HTML部分: 
    <div class="zxx_text_overflow_6">你个杀千刀的,怎么写了这么多的文字,我要被拦腰截断了啊,kitty救我!</div>
    
    css部分: 
    .zxx_text_overflow_6{400px;}
    
    js部分: 
    var wordLimit=function(){ 
      $(".zxx_text_overflow_6").each(function(){ 
        var copyThis = $(this.cloneNode(true)).hide().css({ 'position': 'absolute', 'width': 'auto', 'overflow': 'visible' }); 
        $(this).after(copyThis); 
        if(copyThis.width()>$(this).width()){ 
    $(this).text($(this).text().substring(0,$(this).html().length-4));
    $(this).html($(this).html()+'...');
    copyThis.remove();
    wordLimit();
    }else{
    copyThis.remove(); //清除复制 return;
    }
    });
    }
    wordLimit();

    两个jQuery方法都是自己写的,不算太难。前者直接限定字符个数,后者通过宽度判断,去掉最后一个字符,循环,直到文字内容宽度小于div的限制宽度。

    原创文章,转载请注明来自张鑫旭-鑫空间-鑫生活[http://www.zhangxinxu.com]
    本文地址:http://www.zhangxinxu.com/wordpress/?p=230

  • 相关阅读:
    前端分页功能的实现以及原理
    Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
    Jquery实现的几款漂亮的时间轴
    jQuery点击弹出层,弹出模态框,点击模态框消失
    如何用CSS快速布局(一)—— 布局元素详细
    验证控件jQuery Validation Engine调用外部函数验证
    Javascript实现页面跳转的几种方式
    最详细win7下手动搭建PHP环境:apache2.4.23+php7.0.11
    spark调优——JVM调优
    spark调优——Shuffle调优
  • 原文地址:https://www.cnblogs.com/PiaoMiaoGongZi/p/4010705.html
Copyright © 2020-2023  润新知