- 使用 DedeCMS 自带的“友情链接”模块(推荐,最简单)
- 自定义调用,实现更灵活的下拉菜单效果
使用 DedeCMS 自带的“友情链接”模块(推荐)
这是最简单、最标准的方法,利用 DedeCMS 后台自带的“友情链接”功能,通过一个简单的标签就能实现下拉效果。
步骤 1:在后台添加友情链接
- 登录你的 DedeCMS 后台。
- 在左侧菜单栏找到 【核心】 -> 【友情链接】。
- 点击 【增加一个链接】。
- 在添加页面,你可以选择一个已有的 分类,或者直接创建一个新分类(网站首页”)。
- 填写网站名称、网址(必须以
http://开头)、Logo(可选)等信息。 - 点击 【确定】 保存,重复此步骤,添加你需要的所有链接。
步骤 2:修改模板文件,添加下拉菜单代码
我们需要在网站模板文件中调用这些链接,并给它们加上下拉菜单的样式。
-
找到模板文件: 通常友情链接会放在网站的页脚(footer)部分,请登录你的 FTP 或主机文件管理器,找到并打开对应的模板文件,常见路径是:
/templets/default/footer.htm(默认模板)- 或者你自定义模板目录下的类似文件,如
/templets/你的模板名/footer.htm。
-
添加下拉菜单代码: 在
footer.htm文件中,找到你希望放置友情链接的位置,用以下代码替换掉原有的{dede:flink/}<div class="dropdown-flink"> <a href="javascript:;" class="dropdown-toggle">友情链接 <i class="caret"></i></a> <ul class="dropdown-menu"> {dede:flink type='text' row='24' titlelen="24" typeid="0"} <li><a href="[field:url/]" target="_blank">[field:name/]</a></li> {/dede:flink} </ul> </div>代码解释:
<div class="dropdown-flink">...</div>:这是一个容器,用于包裹整个下拉菜单。<a href="javascript:;" ...>:这是鼠标悬停时触发的菜单标题。class="dropdown-toggle":我们自定义的 CSS 类,用于样式和 JS 事件绑定。<i class="caret"></i>:一个向下的小箭头图标,增强视觉效果。
<ul class="dropdown-menu">...</ul>:这是下拉菜单的主体,一个无序列表。{dede:flink ...}:这是 DedeCMS 的友情链接调用标签。type='text':只调用文字链接,不调用 Logo 图片。row='24':调用 24 条链接。titlelen="24":链接名称显示最多 24 个字符。typeid="0":调用所有分类的链接,如果你想只调用某个分类的链接,把0换成分类的 ID。[field:url/]和[field:name/]:分别调用链接的网址和名称。
-
添加 CSS 样式: 为了让下拉菜单看起来美观,你需要添加一些 CSS 代码,可以在你的模板的 CSS 文件(如
/templets/default/style/dedecms.css)中,或者在<head>标签内添加<style>块。/* 友情链接下拉菜单样式 */ .dropdown-flink { position: relative; /* 关键:为下拉菜单定位提供参考 */ display: inline-block; } .dropdown-flink .dropdown-toggle { text-decoration: none; color: #333; /* 标题颜色 */ padding: 5px 10px; } .dropdown-flink .dropdown-menu { display: none; /* 默认隐藏菜单 */ position: absolute; /* 关键:相对于父容器定位 */ top: 100%; /* 菜单显示在标题的下方 */ left: 0; background-color: #fff; border: 1px solid #ddd; border-radius: 4px; padding: 10px 0; min-width: 150px; z-index: 1000; /* 确保菜单显示在其他内容之上 */ box-shadow: 0 2px 5px rgba(0,0,0,0.1); } /* 当鼠标悬停在容器上时,显示菜单 */ .dropdown-flink:hover .dropdown-menu { display: block; } .dropdown-flink .dropdown-menu li { list-style: none; } .dropdown-flink .dropdown-menu li a { display: block; padding: 5px 20px; text-decoration: none; color: #333; } .dropdown-flink .dropdown-menu li a:hover { background-color: #f5f5f5; } -
添加 JavaScript (可选): 对于更高级的浏览器兼容性或点击效果,可以加入 JS,但对于简单的
hover效果,纯 CSS 已经足够。
完成以上步骤后,刷新你的网站页面,将鼠标移动到“友情链接”上,就应该能看到一个漂亮的下拉菜单了。
自定义调用,实现更灵活的下拉菜单效果
如果你希望友情链接能按分类显示在下拉菜单中(一级菜单是“网站合作”,二级菜单是具体的链接列表),那么就需要更复杂的自定义调用。
步骤 1:在后台添加带分类的友情链接
与方法一类似,在后台 【核心】->【友情链接】 中,先创建几个分类(如“门户网站”、“技术博客”、“资源下载”),然后将链接分别添加到对应的分类下。
步骤 2:修改模板文件,实现多级下拉
这种方法需要用到 DedeCMS 的 channel 标签来调用分类,再用 flink 标签在循环中调用每个分类下的链接。
<div class="dropdown-flink-multi">
<a href="javascript:;" class="dropdown-toggle">友情链接</a>
<ul class="dropdown-menu">
{dede:channel type='self' row='10'}
<li class="dropdown-submenu">
<a href="javascript:;">[field:typename/]</a>
<ul class="dropdown-menu">
{dede:flink type='text' row='10' titlelen="24" typeid="[field:id/]"}
<li><a href="[field:url/]" target="_blank">[field:name/]</a></li>
{/dede:flink}
</ul>
</li>
{/dede:channel}
</ul>
</div>
代码解释:
{dede:channel type='self' ...}:调用友情链接的分类。type='self'表示只调用当前栏目(友情链接)下的子分类。[field:typename/]:输出分类的名称。[field:id/]:输出分类的 ID,作为typeid参数传递给{dede:flink}标签,从而只调用该分类下的链接。class="dropdown-submenu":自定义的 CSS 类,用于实现二级菜单的定位。
步骤 3:添加更复杂的 CSS 样式
这种方法需要更复杂的 CSS 来处理二级菜单的定位和显示。
/* 多级友情链接下拉菜单样式 */
.dropdown-flink-multi {
position: relative;
display: inline-block;
}
.dropdown-flink-multi .dropdown-toggle {
text-decoration: none;
color: #333;
padding: 5px 10px;
}
.dropdown-flink-multi .dropdown-menu {
display: none;
position: absolute;
top: 100%;
left: 0;
background-color: #fff;
border: 1px solid #ddd;
border-radius: 4px;
padding: 5px 0;
min-width: 180px;
z-index: 1000;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}
.dropdown-flink-multi:hover .dropdown-menu {
display: block;
}
/* 二级菜单样式 */
.dropdown-flink-multi .dropdown-submenu {
position: relative;
}
.dropdown-flink-multi .dropdown-submenu > a::after {
content: '>';
float: right;
margin-left: 5px;
}
.dropdown-flink-multi .dropdown-submenu .dropdown-menu {
top: 0;
left: 100%; /* 二级菜单显示在一级菜单的右侧 */
margin-top: -5px; /* 微调位置,与一级菜单对齐 */
}
.dropdown-flink-multi .dropdown-menu li,
.dropdown-flink-multi .dropdown-menu li a {
display: block;
width: 100%;
padding: 5px 20px;
text-decoration: none;
color: #333;
white-space: nowrap; /* 防止文字换行 */
}
.dropdown-flink-multi .dropdown-menu li a:hover {
background-color: #f5f5f5;
}
| 特性 | 方法一 (自带模块) | 方法二 (自定义调用) |
|---|---|---|
| 实现难度 | 非常简单 | 较复杂 |
| 灵活性 | 一般,只能调用所有或单个分类 | 非常高,可实现多级分类菜单 |
| 适用场景 | 大多数网站,只需一个简单下拉列表 | 链接非常多,且需要按类别清晰展示的专业网站 |
| 推荐度 | ⭐⭐⭐⭐⭐ (首选) | ⭐⭐⭐ (有特殊需求时使用) |
对于绝大多数 DedeCMS 方法一已经完全足够,并且是最稳定、最不容易出错的选择,只有在你有非常明确的、按分类展示链接的需求时,才需要考虑使用方法二。
