dede分页标签样式如何自定义?

99ANYc3cd6
预计阅读时长 25 分钟
位置: 首页 DEDE建站 正文

DedeCMS 的分页功能是通过一个固定的函数 GetPageList() 来实现的,其样式主要是由两个部分决定的:

dede分页标签样式
(图片来源网络,侵删)
  1. PHP 函数中的参数:控制分页项的显示和基本结构。
  2. CSS 样式:负责美化分页栏的外观,使其更美观、更符合网站整体设计。

下面我将分步为您讲解如何修改和自定义分页样式。


第一步:理解分页函数 GetPageList()

在 DedeCMS 的列表页模板(通常是 list_article.htm)中,你会找到类似这样的代码:

<div class="dede_pages">
    <ul class="pagelist">
        {dede:pagelist listitem="info,index,end,pre,next,pageno" listsize="5"}
    </ul>
</div>

这里的 {dede:pagelist} 就是调用分页标签的核心,它通过 listitemlistsize 等参数来控制分页栏的显示内容。

常用 listitem 参数说明:

  • index:首页
  • pre:上一页
  • pageno:页码(当前页高亮)
  • next:下一页
  • end:尾页
  • info:分页信息(如:共 45 条记录,共 5 页)
  • option:跳转下拉选择框

你可以根据自己的需求,调整 listitem 的值来决定显示哪些分页元素。

dede分页标签样式
(图片来源网络,侵删)

第二步:修改分页标签的 HTML 结构(可选)

如果你觉得默认生成的 HTML 结构不够灵活,或者想使用更现代的标签(如 <nav>),你可以修改 DedeCMS 的核心文件。

⚠️ 重要提示:修改核心文件前,请务必备份原文件!

  1. 找到核心文件: 文件路径为:/include/arc.listview.class.php

  2. 定位函数: 在该文件中找到 GetPageList() 函数。

    dede分页标签样式
    (图片来源网络,侵删)
  3. 修改 $listitem 数组: 你可以修改这个函数中定义 $listitem 数组的部分,来改变每个分页项的 HTML 结构,默认的首页可能是:

    $indexpage = "<li><a href='".$this->GetCurUrl()."'>首页</a></li>\r\n";

    你可以将其修改为:

    $indexpage = "<li class='page-item'><a class='page-link' href='".$this->GetCurUrl()."' aria-label='首页'><span aria-hidden='true'>首页</span></a></li>\r\n";

    pre, next, pageno 等也进行类似的修改,使其生成符合你期望的 HTML 结构。

这种方法比较彻底,但需要对 PHP 代码有一定了解,且升级 DedeCMS 时可能会被覆盖,对于大多数用户,推荐使用下面的 CSS 方法,因为它更安全、更灵活。


第三步:通过 CSS 自定义分页样式(推荐)

这是最常用也是最安全的方法,我们只需要在网站的 CSS 文件(如 /templets/你的模板/style.css)中添加或修改样式即可。

默认情况下,DedeCMS 分页的 HTML 结构和类名如下:

<div class="dede_pages">
    <ul class="pagelist">
        <li><a href="/plus/list.php?tid=1">首页</a></li>
        <li><a href="/plus/list.php?tid=1&PageNo=2">下一页</a></li>
        <li class="thisclass"><a href="#">1</a></li>
        <li><a href="/plus/list.php?tid=1&PageNo=2">2</a></li>
        <li><a href="/plus/list.php?tid=1&PageNo=3">3</a></li>
        <li><a href="/plus/list.php?tid=1&PageNo=4">4</a></li>
        <li><a href="/plus/list.php?tid=1&PageNo=5">5</a></li>
        <li><a href="/plus/list.php?tid=1&PageNo=6">6</a></li>
        <li><span>...</span></li>
        <li><a href="/plus/list.php?tid=1&PageNo=10">尾页</a></li>
    </ul>
</div>

样式定制示例

下面我将提供几个常见的分页样式,你可以直接复制到你的 CSS 文件中,并根据需要进行调整。

示例1:简洁经典样式

这种样式清晰、易用,适合大多数网站。

/* 分页容器 */
.dede_pages {
    margin: 20px 0;
    text-align: center;
}
/* 分页列表 */
.pagelist {
    display: inline-block;
    margin: 0;
    padding: 0;
    list-style: none;
}
/* 分页项(每个按钮) */
.pagelist li {
    float: left; /* 使列表项横向排列 */
    margin: 0 5px; /* 按钮之间的间距 */
}
/* 分页链接 */
.pagelist li a {
    display: block;
    padding: 6px 12px;
    border: 1px solid #ddd;
    border-radius: 3px; /* 圆角 */
    color: #333;
    text-decoration: none;
    transition: all 0.3s ease;
}
/* 鼠标悬停效果 */
.pagelist li a:hover {
    background-color: #f5f5f5;
    border-color: #ccc;
}
/* 当前页样式 */
.pagelist li.thisclass a {
    background-color: #007bff;
    color: #fff;
    border-color: #007bff;
    cursor: default; /* 禁止点击 */
}
/* 省略号样式 */
.pagelist li span {
    display: block;
    padding: 6px 12px;
    color: #999;
}

示例2:Bootstrap 风格样式

如果你的网站使用了 Bootstrap,或者你想要一个类似 Bootstrap 的分页效果,可以使用以下样式:

/* 分页容器 */
.dede_pages {
    margin: 20px 0;
    text-align: center;
}
/* 分页列表 */
.pagelist {
    display: inline-flex;
    list-style: none;
    padding: 0;
    margin: 0;
    border-radius: 4px;
}
/* 分页项 */
.pagelist li {
    margin: 0 2px;
}
/* 分页链接 */
.pagelist li a {
    position: relative;
    float: left;
    padding: 8px 12px;
    line-height: 1.42857143;
    text-decoration: none;
    color: #337ab7;
    background-color: #fff;
    border: 1px solid #ddd;
    margin-left: -1px;
}
/* 首页和上一页的特殊处理 */
.pagelist li:first-child a {
    margin-left: 0;
    border-top-left-radius: 4px;
    border-bottom-left-radius: 4px;
}
/* 下一页和尾页的特殊处理 */
.pagelist li:last-child a {
    border-top-right-radius: 4px;
    border-bottom-right-radius: 4px;
}
/* 鼠标悬停和焦点状态 */
.pagelist li a:hover,
.pagelist li a:focus {
    z-index: 2;
    color: #23527c;
    background-color: #eee;
    border-color: #ddd;
}
/* 当前页样式 */
.pagelist li.thisclass a {
    z-index: 3;
    color: #fff;
    cursor: default;
    background-color: #337ab7;
    border-color: #337ab7;
}
/* 省略号样式 */
.pagelist li span {
    position: relative;
    float: left;
    padding: 8px 12px;
    line-height: 1.42857143;
    color: #777;
    background-color: #fff;
    border: 1px solid #ddd;
    margin-left: -1px;
}

示例3:现代卡片/按钮样式

这种样式更现代化,没有边框,主要靠背景色和阴影来区分。

/* 分页容器 */
.dede_pages {
    margin: 20px 0;
    text-align: center;
}
/* 分页列表 */
.pagelist {
    display: inline-flex;
    list-style: none;
    padding: 0;
    gap: 8px; /* 使用 gap 属性创建间距,更现代 */
}
/* 分页项 */
.pagelist li {
    margin: 0;
}
/* 分页链接 */
.pagelist li a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 0 12px;
    color: #555;
    background-color: #f8f9fa;
    border: none;
    border-radius: 8px;
    font-size: 14px;
    text-decoration: none;
    transition: all 0.2s ease-in-out;
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}
/* 鼠标悬停效果 */
.pagelist li a:hover {
    background-color: #e9ecef;
    box-shadow: 0 2px 5px rgba(0,0,0,0.15);
    color: #333;
}
/* 当前页样式 */
.pagelist li.thisclass a {
    background-color: #007bff;
    color: #fff;
    box-shadow: 0 2px 5px rgba(0,123,255,0.3);
    cursor: default;
}
/* 省略号样式 */
.pagelist li span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 0 12px;
    color: #adb5bd;
    background-color: #f8f9fa;
    border-radius: 8px;
    font-size: 14px;
}
  1. 基础调整:在模板文件中通过修改 {dede:pagelist}listitem 参数来控制显示哪些分页元素。
  2. 深度定制:如果需要修改 HTML 结构,可以编辑 /include/arc.listview.class.php 文件,但需谨慎操作并备份。
  3. 美化样式推荐方法,在模板的 CSS 文件中添加样式,通过选择器(如 .pagelist li a, .pagelist li.thisclass)来精确控制分页的外观、颜色、间距和交互效果。

你可以从上面的示例中选择一个最符合你网站风格的 CSS,然后在此基础上进行微调,以达到最佳效果。

-- 展开阅读全文 --
头像
dede联动筛选教程
« 上一篇 04-20
织梦后台用户名密码忘了怎么办?
下一篇 » 04-20
取消
微信二维码
支付宝二维码

目录[+]