DedeCMS的循环中判断第一个元素并添加class样式


这种效果就是要求DEDECMS有规律的列表输出LI标签,然后应用相应的CSS样式。我们可以使用以下的参数:

[field:global name=autoindex runphp="yes"]if(@me%2==0)@me=" class=\"mar20\">";else @me=">";[/field:global]

这个参数可以加在调用的任何一个地方,控制CSS的输出,不仅可以应用于arclist,还可以应用于list,写法都是一样的。

应用于arclist

{dede:arclist typeid='23' limit='0,10' titlelen='28'}
<dl[field:global name=autoindex runphp="yes"]if(@me%2==0)@me=" class=\"mar20\">";else @me=">";[/field:global]
<dt>·[field:title/]</dt>
<dd>[field:pubdate function='MyDate("Y-m-d",@me)'/]</dd>
</dl>
{/dede:arclist}

应用于list

{dede:list pagesize='36'}
<dl><dt><img src="/img/lby_06.jpg" width="9" height="9" /> [field:title/]</dt>
<dd>[field:pubdate function="GetDateMK(@me)"/]</dd></dl>
[field:global name=autoindex runphp="yes"](@me%6)? @me="":@me="</div><div class=\"lby1_3\">";[/field:global]
{/dede:list}

更新:

以上是通过dedecms的代码的方式来控制不同的标签应用不同的样式,还可以直接在CSS中使用CSS选择器来控制子元素。

E:nth-child(even){color:#69c}

写法如下:

{dede:arclist row='3' typeid='9'}
<div class="item [field:global name=autoindex runphp='yes'](@me==1)? @me='active':@me='';[/field:global]">
    <a href="[field:arcurl/]">
        <img src="[field:litpic/]" style="width:600px;height:272px;" >
        <div class="carousel-caption">
            [field:title function='html2text(@me)'/]
        </div>
    </a>
</div>
{/dede:arclist}
这句话的意思就是,如果循环出的是第一个,则添加 active 样式,否则为空