织梦cms高亮显示 主栏目

织梦CMS高亮显示主栏目的实现方法

在导航中高亮当前主栏目(顶级栏目),即使访问的是子栏目页面,对应的顶级栏目也应保持高亮状态。这是提升用户体验的重要细节。

一、使用currentstyle实现高亮

{dede:channel type='top' currentstyle="<li class='active'><a href='~typelink~'>~typename~</a></li>"}
<li><a href='[field:typelink/]'>[field:typename/]</a></li>
{/dede:channel}

系统会自动判断当前栏目属于哪个顶级栏目,并将currentstyle应用到该栏目上。即使在子栏目页面,对应的顶级栏目也会高亮。

二、CSS高亮样式

.nav li.active a{color:#fff;background:#3498db;border-radius:4px;}
.nav li.active a:hover{background:#2980b9;}

三、自动判断顶级栏目的高亮逻辑

织梦CMS内部的处理过程:

四、手动实现高亮(PHP方式)

{dede:php}
$topid=$refObj->TypeLink->TypeInfos['topid'];
if(empty($topid)) $topid=$refObj->TypeLink->TypeInfos['id'];
{/dede:php}
{dede:channel type='top'}
<li class="[field:id/]=={dede:php}echo $topid;{/dede:php}?'active':''">
<a href="[field:typelink/]">[field:typename/]</a></li>
{/dede:channel}

五、同时高亮子栏目和主栏目

{dede:channel type='son' currentstyle="<li class='sub-active'><a href='~typelink~'>~typename~</a></li>"}
<li><a href="[field:typelink/]">[field:typename/]</a></li>
{/dede:channel}
建议:主栏目高亮和子栏目高亮使用不同的CSS样式区分,比如主栏目用深色背景、子栏目用边框高亮,形成清晰的视觉层次。