当前位置:首页 > CMS教程 > DeDecms > 列表

dedecms当前栏目高亮显示方法

发布:smiling 来源: PHP粉丝网  添加日期:2014-11-12 10:45:50 浏览: 评论:0 

请问在dedecms模板中如何实现导航栏中当前栏目的样式和非当前栏目不同,也就是当前栏目高亮显示?如果是页面是当前栏目的页面,比如说导航中有:

这五个导航栏目,那么当我浏览<公司简介>这一栏目时<公司简介>在导航条中就高亮显示如:

首页、公司简介、公司新闻、产品中心、联系我们

或者采用另外的css样式,像:背景改为红色,非当前栏目就采用别的css样式,怎么实现这个功能呢?

1:首选我们来了解一下(channel)标签的使用:

标签名称:channel

标记简介:织梦常用标记,通常用于网站顶部以获取站点栏目信息,方便网站会员分类浏览整站信息功能说明:用于获取栏目列表适用范围.

全局使用基本语法:

  1. {dede:channel type='top' row='8' currentstyle="<li><a href='~typelink~' class='thisclass'>~typename~</a> </li>"
  2. <li><a href='[field:typelink/]'>[field:typename/]</a> 
  3. </li> 
  4. {/dede:channel} 

参数说明:typeid = '0' 栏目ID

reid = '0' 上级栏目ID

row = '100' 调用栏目数

col = '1'分多少列显示(默认为单列)

type = 'son | sun' son表示下级栏目,self表示同级栏目,top顶级栏目

currentstyle = ''应用样式

class='thisclass' thisclass这个是自由的,他代表的意思是样式表里面,你所给的高亮显示的样式.

底层模板字段:ID(同 id),typeid,typelink,typename,typeurl,typedir(仅表示栏目的网址).

例:{dede:channel type='top'}<a href='[field:typelink /]'>[field:typename/]</a>{/dede:channel}

注:在没有指定typeid的情况下,type标记与模板的环境有关,如,模板生成到栏目一,那么type='son'就表示栏目一的所有子类.

请看我的 dedecms模板中导航部分代码:

  1. <DIV class=menu> 
  2. <UL> 
  3. <LI><A href="/">首页</A> </LI> 
  4. {dede:channel type='self' row='8' currentstyle="<li class=hover><a href=~typelink~>~typename~</a></li>"
  5. <LI><a href='[field:typelink/]'>[field:typename/]</a></LI> 
  6. {/dede:channel} //开源软件:phpfensi.com 
  7. </UL> 
  8. </DIV> 

那么我们在样式表里面的hover就是控制高亮显示的样式:

  1. .menu{里面就不多写了} 
  2. .menu ul{里面就不多写了} 
  3. .menu ul li{里面就不多写了} 
  4. .menu ul li a{里面就不多写了} 
  5. .hover{background:url(bg-nav.jpg) no-repeat;} 

上面这段是我的网页顶部导航菜单,其中currentstyle就是用来实现当前栏目突出显示的,class=hover自然是我定义的当前栏目样式啦.

这里就涉及到了dedecms的标签问题,其实熟悉dedecms标签的同学对这个问题就不会为难,以下是dedecms的官方频道标签,也就是导航条用到的标签.

说明:其中 class='thisclass' 中的thisclass就是你定义的css样式类别名,class,类别选择器,应用时改为你定义的class.

class='thisclass'放在<a>标记中则css样式作用于<a>,也可以放在<li>标记中,作用于<li>标记.

Tags: dedecms高亮显示 dedecms栏目高亮

分享到: