dedecms标题过长,截断标题加省略号的三种实现方法

      dedecms标题过长,全部显示会使排版混乱,影响美观。我们希望当标题在一定长度范围内时,全标题显示,当标题过时,只显示一定长度,后面加省略号,然后当鼠标移上去时再显示标题的全部内容,这样就即做到了不影响版面的布局,又做到了标题内容的全部显示。

如果有一个50个字节的标题,想截取到30个字节 ,模板代码如下:    

      <ul>
          {dede:arclist titlelen='50' row='10'}
          <li><a title="[field:title /]" href="[field:filename /]">[field:title   function=' ( strlen("@me")>30 ? cn_substr("@me",30)."…" : "@me" ) ' /]</a></li>
           {/dede:arclist}
      </ul>

方法一:

  [field:title   function=' ( strlen("@me")>30 ? cn_substr("@me",30)."…" : "@me" ) ' /] 代替了原来的 [field:title /] ,在输出标题时多了一个判断的过程,先判断标题是否大于30字节,如果大于则只输出30字节的长度,并加上省略号。而title="[field:title /]" 则不受影响,鼠标移上去时显示标题的全部内容。

方法二:CSS的方法如下:

<a style="width:120px; text-overflow:ellipsis; white-space:nowrap; overflow:hidden;" title="DedeCMS2007即将发布" href=" " >DedeCMS2007即将发布</a>

解释:width:120px; 限定长度,text-overflow:ellipsis :当对象内文本溢出时显示省略标记white-space:nowrap:强制文本在一行内显示,overflow:hidden:溢出内容为隐藏。

方法三:php方法:

 

1、打开include目录下inc目录下的inc_fun_SpGetArcList.php文件

2、找到228

   $row['title'] = cn_substr($row['title'],$titlelen);
   在前面增加一行

    $row['fulltitle'] = $row['title']; //注释:显示完整标题


3、找到$row['textlink'] = "<a href='".$row['filename']."'>".$row['title']."</a>";
将其替换为:

$row['textlink'] = "<a href='".$row['filename']."' title='".$row['fulltitle']."'>".$row['title']."</a>";

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值