[经验]dedecms列表页隔五行一个分隔线
dedecms列表页如果是每个标题都隔离,非常占用页面,为了让页面更集中,美观,
笔记部落
想实现织梦
dede文章列表页隔5行加一行线。可惜找了大半天,无论是百度还是谷歌都没有真正比较好的答案。
当然不是咱百度不行,可惜到处都是两篇文章,一篇是08年某版主写的解决办法,当时估计是DEDE早期版本,需要修改inc里面的php文件和参数,非常的不方便。而另一篇则是一大堆的数据库参数调用与计算,好像是算法复杂了一些呀。
例如下面的代码——隔五行添加一分隔线 {dede:list pasize='50'} <LI><a href="[field:arcurl /]" title="[field:title function='htmlspecialchars(@me)'/]" target=_blank>[field:title function="cn_substr(@me,48)"/]</a>[field:pubdaterunphp='yes'] $a="<font color=red>".strftime('%m-%d',@me)."</font>"; $b=strftime('%m-%d',@me); $ntime = time(); $day3 = 3600 * 24; if(($ntime - @me) < $day3) @me = $a; else @me =$b; [/field:pubdate]<br> [field:global name=autoindex runphp="yes"] if(@me%5==0)@me="<hr />"; else @me=""; [/field:global] {/dede:list} </LI>
不是说以上的代码不能用,而是基于代码简洁,成效简单的情况下,能够不修改文件,不复杂运算就好了。后来在苏歌seo的不懈努力之下,终于让笔记部落找到了解决办法,简单的计算加上
CSS
控制一下,完美实现了dede隔五行加一分隔线。代码如下:<div class="liebiao"> <ul>{dede:arclist orderby=pubdate titlelen='36' row='10'} <li><a href="">[field:title/]</a> [field:global runphp='yes' name=autoindex] $a="<hr>"; ((@me%5)==0)? @me="$a":@me=""; [/field:global] </li> {/dede:arclist} </ul></div>
以上是利用系统生成文章列表时的序号除以5得整数时,序号后面将添加$a即<hr>,这时在文章列表就会自动在每五行的li后面添加一个<hr>,然后我们在css样式表上添加控制一下hr,就可以了。CSS代码参考如下:
.liebiao ul {}
.liebiao ul li {}
.liebiao hr {border:0; margin-top:5px; border-bottom:solid 1px #FCFCFC; height:1px; width:550px; margin-bottom:4px;}
以上hr的CSS样式的意思是边界为0,距离顶部5像素,底面边界为虚线、1像素、颜色,高度1像素,宽度550像素,距离底部4像素。
大家可以再自行调整一下。