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等方法。但能通过模板解决的问题,编程就不必要了。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:溢出内容为隐藏。
CSS的方法比修改模板还要简单,不过很遗憾,text-overflow:ellipsis属性在firefox中是没有效果的。所以,还是使用上面的修改模板的方法吧。
0
顶一下w3站长
首页- 05-25PHP168风格制作说明文档
- 05-25ECMS网站管理系统4.7源码/接口/
- 05-18dedecms自带采集器的技巧
- 05-18DedeCms系统的用户用对搜索引擎
- 05-17关于非内容页调用文章副标题的程
- 04-04伪静态每日更新的方法!
- 05-02Phpcms2007 SP6 开源免费(01月
- 05-02帝国网站管理系统4.7正式版发布
- 05-02DedeCms V5.1(GBK/UTF8)版
- 04-07织梦-Flink 标记使用实例
- 04-07织梦-Vote 标记使用实例
- 04-07织梦-自定义宏标记的应用 tag
- 04-04当天发布的主题日期显示红色
- 04-07PHPCMS 整站代码分析讲解(四)
- 04-07PHPCMS 整站代码分析讲解(六)
- 04-07PHPCMS 整站代码分析讲解(三)
- 04-07PHPCMS 整站代码分析讲解(五)
- 04-04伪静态每日更新的方法!
- 04-07PHPCMS关于一键更新全站的简单方法
- 04-07PHPCMS整站代码分析讲解
- 04-07PHPCMS 整站代码分析讲解(二)
- 04-07PHPCMS 整站代码分析讲解(七)
- 05-18dedecms自带采集器的技巧
- 01-29PHPCMS 2007 产品介绍