div实现截取的数据长度

转载 2007年09月12日 18:16:00

很多时候,我们希望一些文字(比如网站首页新闻块的标题),在一行内显示,并且超出它的长度范围时,则加...省略,并且出现提示。  
  我们通常的解决方法是在服务器端判断内容的长度,超出多少个字符则截断,并添加title提示。asp代码类似如下:  
  <%  
  if   len(mystr)>20   then  
  response.write   "<span   title='"   &   mystr   &"'>"   &   left(mystr,17)   &   "...</span>"  
  else  
  response.write   "<span>"   &   mystr   &   "</span>"  
  end   if  
  %>  
  这样的方法有几个缺点:    
   
  1,消耗服务器资源。    
  2,通用性差.一旦你的显示宽度变化了,你就需要重新调整要显示的字符个数。    
  3,更重要的是,常常对不齐。一是字符种类(汉字,大小写字母,全半角标点)不同,则宽度不同。二是字号大小不同,宽度也不同,最大号字和最小号字的宽度差了很多。    
  因此,这种方法显得不够理想,我们有必要另想办法。    
  解决办法:   先看示例,,其中表格内左右两块内容完全相同。超出长度的自动省略了,并有提示。注意第二行,在左边,由于容器宽度不够,它是省略有提示的,在右边,由于宽度够,则它是普通模式。你还可以调整IE的“查看   》文字大小”,调成不同的字大小看一看,刷新后再调几下。   这里是相关示例代码,你可以修改后运行:  
  <style>  
  #leftnewstd   .ellipsis_row{width:170px}  
  #rightnewstd   .ellipsis_row{width:250px}  
  .ellipsis_row{  
  overflow:hidden;  
  text-overflow:ellipsis;  
  white-space:nowrap;  
  wzy:expression(                 this.title=this.offsetWidth<this.children(0).offsetWidth?this.children(0).innerText:'',  
          this.style.wzy=''  
  );  
  background-color=#b0b0b0;  
  }  
  </style>  
  <table     ><tr>  
  <td   id=leftnewstd   width=200px   bgcolor=#f0f0ff   >    
  <span   class=ellipsis_row><span>多以开源起家   美国计算机专业前20名著名学校点评</span></span><br>  
  <span   class=ellipsis_row   ><span>挑战微软数据库管理案例</span></span><br>  
  <span   class=ellipsis_row   ><span>WWW:15年谁主沉浮?</span></span>  
  </td>  
  <td   id=rightnewstd   width=280px   bgcolor=#f0fff0>    
  <span   class=ellipsis_row   ><span>多以开源起家   美国计算机专业前20名著名学校点评</span></span><br>  
  <span   class=ellipsis_row   ><span>挑战微软数据库管理案例</span></span><br>  
  <span   class=ellipsis_row   ><span>WWW:15年谁主沉浮?</span></span>  
  </tr></table>  
     
   
  解释:样式中的overflow,text-overflow,和white-space,三者来结合实现省略功能。css表达式   expression来实现,加提示。用this.offsetWidth<this.children(0).offsetWidth来判断是内容是否超过容器宽度。是的话,加title提示.应用完表达式之后,用this.style.wzy=''来清空它,以免影响页面效率。   

贴自:http://topic.csdn.net/t/20051215/18/4461758.html
 

举报

相关文章推荐

jstl/el表达式截取后台传入数据的长度

转载 ${wjcd.lrsj}原来得到的是如2006-11-12 11:22:22.0${fn:substring(wjcd.lrsj, 0, 16)}使用functions函数来获取list的长度...

如果系统要使用超大整数(超过long长度范围),请你设计一个数据结构来存储这种超大型数字以及设计一种算法来实现超大整数加法运算

public class T1 { /** * 如果系统要使用超大整数(超过long长度范围),请你设计一个数据结构来存储这种超大型数字以及设计一种算法来实现超大整数加法运算)。 */ ...
  • cs_12
  • cs_12
  • 2014-10-10 16:23
  • 465

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

STM32实现USART+DMA接收未知长度的数据和发送

转自http://www.lxway.com/4095951911.htm 前言:开始学USART+DMA的时候看到帖子《STM32 UART DMA实现未知数据长度接收》,觉得方法妙极了。此下出自...

可变长度数据的管道实现方法

管道是两个进程之间的一种通讯方式。比如甲和乙

Lua语言实现:截取给定字符串的部分长度,超出部分用省略号“...”替换

在项目开发过程当中,尤其是游戏开发,当使用lua脚本语言编写客户端程序时,需要给玩家角色名长度做适配。如果玩家角色名的长度很长,超过了给定框,那么就会遮住游戏界面其他地方的图片,效果很难看,这样给玩家...

用Java实现按字节长度截取字符串的方法

Web应用程序在浏览器中显示字符串时,由于显示长度的限制,常常需要将字符串截取后再进行显示。但目前很多流行的语言,如C#、Java内部采用的都是 Unicode 16(UCS2)编码,在这种编码中所有...

【Codeforces Round 271 (Div 2)D】【DP】Flowers 黑色必须连续摆放k,长度为n的摆放方案数

D. Flowers time limit per test 1.5 seconds memory limit per test 256 megabytes inpu...

【Codeforces Round 328 (Div 2)C】【lcm 讨论题】The Big Race [1,l]长度距离比赛的平局概率

#include #include #include #include #include #include #include #include #include #include #include #...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)