织梦文章分页代码CSS如何实现样式调整?

99ANYc3cd6
预计阅读时长 27 分钟
位置: 首页 织梦建站 正文

织梦分页代码结构

我们需要了解织梦默认生成的分页HTML代码结构,了解结构后,我们才能用CSS进行精准的样式控制。

织梦文章分页代码css
(图片来源网络,侵删)

织梦默认分页代码通常如下:

<div class="dede_pages">
  <ul class="pagelist">
    <span class="pageinfo">共 <strong>3</strong> 页/<strong>58</strong> 条记录</span>
    <li><a class="a1" href="#">上一页</a></li>
    <li><a href="#">1</a></li>
    <li><span class="thisclass">2</span></li>
    <li><a href="#">3</a></li>
    <li><a href="#">下一页</a></li>
    <li><a href="#">末页</a></li>
  </ul>
</div>

关键节点说明:

  • <div class="dede_pages">: 最外层容器。
  • <ul class="pagelist">: 分页列表容器。
  • <li>: 每一个分页项(页码、按钮)都是一个列表项。
  • <a>: 可点击的链接(页码、上一页、下一页等)。
  • <span class="thisclass">: 当前页的页码,它是一个 <span> 标签,不可点击。
  • <span class="pageinfo">: 显示总页数和总记录数的信息。

基础CSS样式(默认美化)

这是最常用的一套样式,简洁、清晰,适配大多数网站风格,您可以直接复制到您的CSS文件中(/templets/default/style/dedecms.css)。

/* 文章分页样式 */
.dede_pages {
    text-align: center; /* 整体居中 */
    margin: 20px 0;    /* 上下间距 */
    font-size: 12px;
    font-family: Arial, "Microsoft YaHei", sans-serif;
}
.pagelist {
    display: inline-block; /* 让ul能够被水平居中 */
    list-style: none;     /* 去掉列表默认的圆点 */
    padding: 0;
    margin: 0;
}
.pagelist li {
    display: inline-block; /* 让li横向排列 */
    margin: 0 5px;        /* 页码之间的间距 */
}
.pagelist a, .pagelist span {
    display: inline-block; /* 让a和span可以设置宽高和内边距 */
    padding: 6px 12px;     /* 内边距,决定按钮大小 */
    border: 1px solid #ddd; /* 边框 */
    border-radius: 3px;    /* 圆角 */
    color: #333;           /* 文字颜色 */
    text-decoration: none; /* 去掉下划线 */
    transition: all 0.3s ease; /* 平滑过渡效果 */
}
/* 鼠标悬停在普通页码上的效果 */
.pagelist a:hover {
    background-color: #f8f8f8;
    border-color: #ccc;
}
/* 当前页样式 */
.pagelist .thisclass {
    display: inline-block;
    padding: 6px 12px;
    border: 1px solid #007bff; /* 高亮边框颜色 */
    border-radius: 3px;
    color: #fff;             /* 白色文字 */
    background-color: #007bff; /* 背景色 */
    cursor: default;         /* 显示为默认光标,表示不可点击 */
}
/* 上一页、下一页、末页等特殊链接的样式 */
.pagelist .a1 {
    color: #999;
    cursor: default;
}
.pagelist .a1:hover {
    background-color: transparent;
    border-color: #ddd;
}
/* 页面信息样式 */
.pageinfo {
    color: #999;
    margin-left: 10px;
}

高级美化样式(按钮风格)

如果您想让分页看起来更像现代化的按钮,可以使用以下样式,这套样式更注重视觉层次感。

织梦文章分页代码css
(图片来源网络,侵删)
/* 文章分页高级美化样式 */
.dede_pages {
    text-align: center;
    margin: 30px 0;
    font-size: 0; /* 消除inline-block元素间的间隙 */
}
.pagelist {
    display: inline-block;
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: 14px; /* 恢复字体大小 */
}
.pagelist li {
    display: inline-block;
    margin: 0 2px;
}
.pagelist a, .pagelist span {
    display: inline-block;
    padding: 8px 15px;
    border: none;
    border-radius: 4px;
    color: #555;
    text-decoration: none;
    background-color: #f0f0f0;
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
    transition: all 0.2s ease-in-out;
}
/* 鼠标悬停效果 */
.pagelist a:hover {
    background-color: #e0e0e0;
    box-shadow: 0 1px 5px rgba(0,0,0,0.15);
    transform: translateY(-1px);
}
/* 当前页样式 */
.pagelist .thisclass {
    display: inline-block;
    padding: 8px 15px;
    border-radius: 4px;
    color: #fff;
    background-color: #007bff; /* 使用蓝色作为主色调 */
    box-shadow: 0 1px 3px rgba(0,123,255,0.3);
    cursor: default;
}
/* 上一页、下一页等特殊链接 */
.pagelist .a1 {
    color: #aaa;
    background-color: #f5f5f5;
    cursor: not-allowed; /* 更明确的不可点击状态 */
}
.pagelist .a1:hover {
    background-color: #f5f5f5;
    box-shadow: none;
    transform: none;
}
/* 页面信息样式 */
.pageinfo {
    color: #888;
    margin-left: 15px;
    font-size: 14px;
    vertical-align: middle; /* 与分页按钮对齐 */
}

常见问题与解决方法

分页代码不显示或显示异常

可能原因:

  • 过少:如果一篇文章内容不够一页,织梦默认不会生成分页。
  • 分页标签缺失:在文章内容模板(article_article.htm)中,没有调用分页标签。
  • 标签调用错误:使用了错误的标签。

解决方案: 确保您的文章模板中有正确的分页标签,通常放在文章内容的末尾。

<div class="article-content">
    {dede:field.body/}
</div>
<!-- 正确的分页调用标签 -->
<div class="dede_pages">
    <ul class="pagelist">
        {dede:pagelist listitem="info,index,end,pre,next,pageno" listsize="5"/}
    </ul>
</div>
  • listitem:控制显示哪些分页项。
  • listsize:控制当前页码左右显示的页码数量。

如何修改“上一页”、“下一页”的文字?

织梦默认的“上一页”是 <a class="a1">上一页</a>a1 类的链接通常是禁用状态(如果已经是第一页或最后一页)。

修改模板文件 找到织梦的核心文件 include/arc.archives.class.php,搜索 GetPageListDM 函数,找到定义文字的地方进行修改。(此方法不推荐,因为升级织梦后会失效)

织梦文章分页代码css
(图片来源网络,侵删)

使用CSS覆盖(推荐) 这是最灵活、最安全的方法,我们可以用CSS来隐藏默认文字,然后使用伪元素 :before:after 来添加自定义文字。

/* 假设分页HTML结构如下 */
/* <li><a class="a1" href="#">上一页</a></li> */
/* 1. 隐藏默认文字 */
.pagelist .a1 {
    color: transparent; /* 将文字颜色设为透明 */
    position: relative; /* 为伪元素定位做准备 */
}
/* 2. 使用伪元素添加自定义文字 */
.pagelist .a1::before {
    content: "‹"; /* 使用一个好看的左箭头符号 */
    color: #999;
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 16px;
}
/* 对下一页做同样处理 */
.pagelist .a1:has(+ li .thisclass) /* 判断是否是最后一页的“下一页” */ {
    color: transparent;
}
.pagelist .a1:has(+ li .thisclass)::after {
    content: "›"; /* 右箭头符号 */
    color: #999;
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 16px;
    left: auto; /* 覆盖之前的left */
}
/* 注意:上面的 `:has()` 选择器较新,兼容性可能有问题,如果兼容性要求高,可以简化处理:*/
/* 只给“下一页”加一个右箭头 */
.pagelist li a:contains("下一页")::after { /* 注意::contains() 是jQuery语法,原生CSS不支持 */
    /* ... */
}
/* 最稳妥的方法还是直接修改模板,或者接受默认文字。 */

更简单的CSS方案(推荐): 直接隐藏默认文字,用背景图或伪元素显示图标。

/* 隐藏上一页的默认文字 */
.pagelist .a1 {
    text-indent: -9999px; /* 将文字移出可视区域 */
    width: 30px; /* 设置一个固定宽度 */
    padding: 0;
    overflow: hidden;
}
/* 用伪元素添加一个简单的箭头 */
.pagelist .a1::before {
    content: "‹";
    text-indent: 0; /* 恢复文字 */
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}
/* 下一页同理 */

如何让分页只在内容超过一定高度时才显示?

这需要结合CSS和一点JavaScript。

CSS:

/* 默认隐藏分页 */
.dede_pages {
    display: none;
}
/* 当父容器有特定类时显示分页 */
.article-content.show-pagination + .dede_pages {
    display: block;
}

JavaScript (放在页面底部):

document.addEventListener('DOMContentLoaded', function() {
    const articleContent = document.querySelector('.article-content');
    const pagination = document.querySelector('.dede_pages');
    if (articleContent && pagination) {
        // 检查内容高度,比如超过1000px就显示分页
        if (articleContent.scrollHeight > 1000) {
            articleContent.classList.add('show-pagination');
        }
    }
});
  • article-content 是包裹文章内容的div。
  • scrollHeight 是元素内容的总高度(包括不可见部分)。
  1. 基础优先:从第二部分的 基础CSS样式 开始,它已经能满足大部分需求。
  2. 结构清晰:确保你的HTML结构是织梦默认生成的,这样CSS才能生效。
  3. 善用开发者工具:如果样式不生效,使用浏览器(如Chrome、Firefox)的开发者工具(F12)来检查元素,看看是CSS选择器错误还是优先级问题。
  4. 修改需谨慎:尽量不要直接修改织梦核心文件,优先使用模板标签和CSS来解决样式问题。

希望这份详细的指南能帮助您完美地美化织梦文章的分页功能!

-- 展开阅读全文 --
头像
本地测试织梦php模版如何操作?
« 上一篇 02-10
C语言中long和int有何区别与选择?
下一篇 » 02-10

相关文章

取消
微信二维码
支付宝二维码

目录[+]