根据容器的高度进行截取字符的长度

  在实际工作中,很多时候都会有几行几行之后显示省略号的需求,都知道单行省略号的需求很简单,三个属性就实现了(overflow: hidden;text-overflow:ellipsis;white-space:nowrap;),但是多行的话,就稍微麻烦一些了,网上也有很多实现方法,但很多都不兼容,那下面就说一下用js实现多行之后多余的显示省略号。

  html:   

    <div class="div0">
      点击修改高度:
      <input type="radio" class="radio" value="50">50px
      <input type="radio" class="radio" value="80">80px
      <input type="radio" class="radio" value="110">110px
      <input type="radio" class="radio" value="140">140px
    </div>
    <div class="div">
      这是一种土方法,小时候常玩儿。背靠墙或椅背,以头枕部向后顶墙,头和身体不动,肌肉紧张收缩,后来听人说这叫"绷劲儿”;或者双手交叉放在头枕部,双手向前使劲儿,头枕部向后使劲儿,相互对抗,头颈不动。锻炼时,颈项部的肌肉持续紧张3?5秒,放松休息3?5秒为1个周期。每天锻炼100?200次,分5-10组完成。
    </div>

  css:

    * {
      margin:0;
      padding:0
    }
    html {
      font-size:14px;
    }
    .div0 {
      margin:30px;
    }
    .div {
      width:300px;
      height:50px;
      line-height:24px;
      border:1px solid #333;
      margin:30px;
      padding:5px;
    }

  js:

    $(function(){
      var div = $(".div");
      var font_s = parseInt(div.css("font-size"));
      var line_h = parseInt(div.css("line-height"));
      var div_h = div.height();
      var div_w = div.width();
      var len = Math.floor(div_w/font_s);
      var con = div.text();
      var con2 = con;
      var con_new = Math.floor(div_h/line_h);
      con2 = con2.replace(con2.substring(len*(con_new-1)+6,con2.length),"...");//替换
      div.text(con2)
      $(".radio").click(function(){
      $(this).attr("checked","checked").siblings().removeAttr("checked");
      div.height(this.value);
      div_h = div.height();
      var con_new = Math.floor(div_h/line_h);
      con3 = con.substring(0,len*(con_new-1)+6);//截取
      div.text(con3 + "...")
    })
  })

    

时间: 2025-01-06 21:50:57

根据容器的高度进行截取字符的长度的相关文章

用css截取字符 css排版隐藏溢出文本

方法一: <div style="width:300px; overflow:hidden;  text-overflow:ellipsis; white-space:nowrap;"> 任意长度的字符串  </div> 说明:优点是内容可以为任何HTML元素,包括超链接和图片等,在IE6中还会在结尾自动显示省略号.缺点是必须指定宽度数值,并且宽度不能是百分数,否则在IE中会被认为是字符总长的百分比. 方法二: <input type="text

matlab实现的手写体字符截取字符区域的方法

在提取手写体字符特征中如何更好的截取图像中字符区域是很重要的事. 下面就给出一种截取字符区域的方法,以使字符在图像中占据更多的位置 A=imread(filename); subplot(2,2,1); imshow(A); [N,M]=size(A); % A= bwmorph(A,'thin'); %A=im2bw(A); X=zeros(1);%%%行 Y=zeros(1);%%%列 i=1; j=1; for n=1:N for m=1:M if (A(n,m)~=0) X(:,i)=n

批处理中set截取字符详解

set截取字符详解  在批处理中,set的功能有点繁杂:设置变量.显示环境变量的名及值.做算术运算.等待用户的输入.字符串截取.替换字符串,是我们常用的命令之一. 在字符串截取方面,新手因为没能注意到偏移量的问题,很容易提取到错误的字符串,因此,特开此帖,详细解释 set 截取字符的用法. 我们先来看一个例子: set str=123456789 现在,我需要提取变量 str 中的第一个字符,那么,该怎么写命令呢? set var=%str:~1,1%?我想,这很可能是很多粗懂set用法的新手们

Excel怎样从一串字符中的某个指定“字符”前后截取字符及截取字符串常用函数

怎么样可以从一串字符中的某个指定位置的前或后截取指定个数的字符. 如:12345.6789,我要截取小数点前(或后)的3个字符.怎么样操作, 另外,怎么样从右边截取字符,就是和left()函数相反的那个功能. =find(".",a2)返回在数字中字符(小数点)的位置. 具体公式如下:字符(小数点)前三位=MID(A2,FIND(".",A2)-3,3) 字符(小数点)后三个=MID(A2,FIND(".",A2)+1,3) 字符(小数点)前面的

CSS截取截取字符长度并显示省略号的方法

HTML部分 <div> <span>这是一个CSS3截取截取字符的例子.它根据宽度来处理.</span> </div> <div class="ut"> <span>无用占位</span> <a href="#" title="这是一个CSS3截取截取字符的例子.它根据宽度来处理.">这是一个CSS3截取截取字符的例子.它根据宽度来处理.</a

实现未知高度父容器及其左右排列子容器的高度自适应的办法

1 <div class="container"> 2 <div class="content-1">未知高度和宽度的内容</div> 3 <div class="content-2">未知高度和宽度内容</div> 4 </div> 需要实现两个子容器中一个依据另外一个的高度而自动等高,同时父容器也是同样自动等高,宽度可以自适应或者按需分配. 目前我学习到的两种解决办法一种

批处理中set截取字符具体解释

set截取字符具体解释  在批处理中,set的功能有点繁杂:设置变量.显示环境变量的名及值.做算术运算.等待用户的输入.字符串截取.替换字符串,是我们经常使用的命令之中的一个. 在字符串截取方面,新手由于没能注意到偏移量的问题,非常easy提取到错误的字符串,因此,特开此帖,详解 set 截取字符的使用方法. 我们先来看一个样例: set str=123456789 如今,我须要提取变量 str 中的第一个字符,那么,该怎么写命令呢? set var=%str:~1,1%?我想,这非常可能是非常

python按照指定字符或者长度 截取字符串

1.截取指定位置字符串 Python字符串可以理解为一个数组,获取某一部分的可以使用 str[beginIndex:endPosition],其中str为需要截取的字符串,beginIndex为需要截取的第一个字符的下标,endPosition为截取字符最后一个的位置,注意是下标和位置(下面示例),下标+1=位置:beginIndex,endPosition都可以不写,不写的情况默认第一个或者最后一个: 正常示例: a = "Hello" print "a[1:4] 输出结果

[JS]截取字符,中英文都可以

//截取字符,中英文都可以,hasDot=true 返回值的最后还可以添加3个点 function subString(str, len, hasDot) { var newLength = 0; var newStr = ""; var chineseRegex = /[^\x00-\xff]/g; var singleChar = ""; var strLength = str.replace(chineseRegex, "**").leng