2这是一个中文例子,我是要成为攻城狮的人我是要成为攻城狮的人哟呵!345thisisanenglishdemo,myenglishissopoorthatijustwanttosayhelloworld!6css.test{width:300px;overflow:hidden;text-overflow:ellipsis;whi" />

单行或多行文本折行用省略号表示

系统 1768 0

初阶:单行文本

html

      
        1
      
      
        <
      
      
        div 
      
      
        class
      
      
        ="test chn"
      
      
        >
      
      
        2
      
      
        这是一个中文例子,我是要成为攻城狮的人我是要成为攻城狮的人哟呵!


      
      
        3
      
      
        </
      
      
        div
      
      
        >
      
      
        4
      
      
        <
      
      
        div 
      
      
        class
      
      
        ="test eng"
      
      
        >
      
      
        5
      
      
        this is an english demo, my english is so poor that i just want to say hello world!


      
      
        6
      
      
        </
      
      
        div
      
      
        >
      
    

css

      
        .test
      
      {
      
        

    width
      
      :
      
        300px
      
      ;
      
        

    overflow
      
      :
      
        hidden
      
      ;
      
            

    text-overflow
      
      :
      
        ellipsis
      
      ;
      
        

    white-space
      
      :
      
        nowrap
      
      ;
      
        

    border
      
      :
      
        5px solid #23bab5
      
      ;
      
        

    margin
      
      :
      
        30px auto
      
      ;

}
    

效果图

单行或多行文本折行用省略号表示

在最新版的ie 火狐 chrome 均是如此,据说早期的forefix会出现字被截断的问题,但这个已经够大部分浏览器用了

多行折叠

jquery实现

 html

      
        <
      
      
        div 
      
      
        class
      
      
        ="test"
      
      
        >
      
      
        <
      
      
        p
      
      
        >
      
      
            这是一个中文例子,我是要成为攻城狮的人我是要成为攻城狮的人哟呵!这是一个中文例子,我是要成为攻城狮的人我是要成为攻城狮的人哟呵!这是一个中文例子,我是要成为攻城狮的人我是要成为攻城狮的人哟呵!这是一个中文例子,我是要成为攻城狮的人我是要成为攻城狮的人哟呵!

    
      
      
        </
      
      
        p
      
      
        >
      
      
        </
      
      
        div
      
      
        >
      
    

CSS

      
        .test
      
      {
      
        

    width
      
      :
      
        300px
      
      ;
      
        

    overflow
      
      :
      
        hidden
      
      ;
      
             

    border
      
      :
      
        5px solid #23bab5
      
      ;
      
        

    margin
      
      :
      
        30px auto
      
      ;
      
        

    height
      
      :
      
        100px
      
      ;

}
    

JQuery

      
        $(document).ready(function()
      
      {
      
            

    var divHeight = $(".test").height();

    //var divHeight = $(".test").css("height"); 如此返回带px
        

while($(".test p").outerHeight()>divHeight){
      
        
           $(".test p").text($(".test p").text().replace(/(\s)*([a-zA-Z0-9]+|\W)(\.\.\.)?$/, "...")); //$(".test p").text($(".test p").text().substring(0,$(".test p").text().length - 1)); //一个一个字符串减少,最后再替换也ok 
        
        }
        
           });
        
      
    

    效果图

单行或多行文本折行用省略号表示

注:其中的正则表达式参考了http://c7sky.com/text-overflow-ellipsis-on-multiline-text.html,我自己写的是一个个删除直至小于divHeight,对正则表达式不太熟悉,以后抽出时间来学。

另外 ,第一次代码二逼的写成了这样

      
        var
      
       divHeight = $(".test"
      
        ).height();

    
      
      
        var
      
       pHeight = $(".test p"
      
        ).outerHeight();

    
      
      
        while
      
      (pHeight>
      
        divHeight){

        $(
      
      ".test p").text($(".test p").text().replace(/(\s)*([a-zA-Z0-9]+|\W)(\.\.\.)?$/, "..."
      
        ));

    }
      
    

想什么笨蛋,这是个死循环啊!

纯css的方法目前还没想到特别好的,有一篇折中的供大家参考,但感觉效果不是特别好

http://www.cocss.com/?p=1382

本人菜鸟一只,有什么错误或者更好的方法欢迎指正哦

 

单行或多行文本折行用省略号表示


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论