【web组件库系列】纯CSS实现典型网页数据分页器

简介: 【web组件库系列】纯CSS实现典型网页数据分页器

使用CSS实现分页器


【提示】:本文中’Out[]:'代表代码对应的运行结果。

1. 基本实现方案

将分页器看作是一个无序列表,页面项看作是无序列表项目,则一个最原始的分页器(不带样式)实现如下:

<ul class="pager">
  <li><a href="#">«</a></li>
  <li><a href="#">1</a></li>
  <li><a href="#">2</a></li>
  <li><a href="#">3</a></li>
  <li><a href="#">»</a></li>
</ul>

Out[]:

  • «
  • 1
  • 2
  • 3
  • »
  • 以上这个分页器有3个页面,分别是1,2,3。
  • “«”和“»”是为分页数目过多时预留的,即假设有数据量决定的页面有100页,当我们在58页时,显示的分页为57、58、59,这是“«”表示页面链接到57页的前一页,即56页。“»”同理,为60页。
  • 由于这里我们只讨论CSS样式,不关系“«”和“»”是否出现和什么时候出现的逻辑。

让无序列表中所有的项目间组成行内元素

ul.pager li {
    display: inline;         /* 行内元素 */
}
ul.pager {
    display: inline-block;  /* 行内块状元素 */
    padding: 0;
    margin: 0;
}

Out[]:

这就是一个最简单的分页器了。但这个分页器似乎并不好看。好看的分页器,如百度大概是这个样子的:

让每一个列表项目拥有方形背景

ul.pager li a {
    color: #000;                       /* 字体颜色 */
    float: left;                       /* 从左向右浮动 */
    padding: 12px 21px;                /* 内边距 */
    margin:3px;                        /* 外边距 */
    text-decoration: none;             /* 清除文字修饰 */
    border: 1px solid #000;            /* 边框颜色 */
}

Out[]:

为当前页标签绘色

ul.pager li a.active {
    background-color: #4E6EF2;
    color: white;
    border: 1px solid #4E6EF2;
}

Out[]:

光标移入颜色变灰,光标移除颜色恢复

ul.pager li a:hover:not(.active) {
  background-color: #cdcdcd;
}

光标移入3时:

光标移出3时:

这样,就实现了一个漂亮的CSS分页器

2. 进一步完善

上/下一页文字

这里主要是参考百度搜索的分页器看起来的样子进行调整。我们可以将左右部分使用文字:

<div class="bk">
  <ul class="pager">
    <li><a href="#"><上一页</a></li>
    <li><a href="#">1</a></li>
    <li><a class="active" href="#">2</a></li>
    <li><a href="#">3</a></li>
      <li><a href="#">4</a></li>
    <li><a href="#">5</a></li>
    <li><a href="#">6</a></li>
    <li><a href="#">7</a></li>
    <li><a href="#">8</a></li>
    <li><a href="#">9</a></li>
    <li><a href="#">10</a></li>
    <li><a href="#">下一页></a></li>
  </ul>
</div>

圆角、光标移入变换时间

ul.pager li a {
    color: #000;                     /* 字体颜色 */
  background-color: #fff;          /* 背景颜色 */
    float: left;                       /* 从左向右浮动 */
    padding: 12px 18px;                /* 内边距 */
  margin:9px;                        /* 外边距 */
    text-decoration: none;             /* 清除文字修饰 */
  border-radius: 6.5px;              /* 圆角 */
  transition: background-color .3s;  /* 动画变换时间 */
}

添加一个背景色

由于各项目为白色,给个背景色:

.bk{
  height:66px;
    width: 900px;
    background-color: #F5F5F6;
  text-align:center
}

完整的代码

完整的代码如下:

<style>
ul.pager li {display: inline;}
ul.pager {
    display: inline-block;
    padding: 0;
    margin: 0;
}
ul.pager li a {
    color: #000;                     /* 字体颜色 */
  background-color: #fff;          /* 背景颜色 */
    float: left;                       /* 从左向右浮动 */
    padding: 12px 18px;                /* 内边距 */
  margin:9px;                        /* 外边距 */
    text-decoration: none;             /* 清除文字修饰 */
  border-radius: 6.5px;              /* 圆角 */
  transition: background-color .3s;  /* 动画变换时间 */
}
ul.pager li a:hover:not(.active) {
  background-color: #cdcdcd;
}
ul.pager li a.active {
    background-color: #4E6EF2;
    color: white;
    border: 1px solid #4E6EF2;
}
.bk{
  height:66px;
    width: 900px;
    background-color: #F5F5F6;
  text-align:center
}
</style>
<div class="bk">
  <ul class="pager">
    <li><a href="#"><上一页</a></li>
    <li><a href="#">1</a></li>
    <li><a class="active" href="#">2</a></li>
    <li><a href="#">3</a></li>
      <li><a href="#">4</a></li>
    <li><a href="#">5</a></li>
    <li><a href="#">6</a></li>
    <li><a href="#">7</a></li>
    <li><a href="#">8</a></li>
    <li><a href="#">9</a></li>
    <li><a href="#">10</a></li>
    <li><a href="#">下一页></a></li>
  </ul>
</div>

打开浏览器,可以看到:

目录
相关文章
WEB端交互元件库:Axure设计师的高效利器
EQL UI是一款功能强大、组件丰富的Axure元件库,涵盖500+设计组件与完整后台模板,助力设计师高效搭建高保真原型,提升产品设计效率与质量。
1285 128
|
JavaScript API 开发工具
(H5-Web3D-ThreeJS)在网页三维CAD中绘制窗户模型
本文介绍了如何使用mxcad3d在网页中创建一个简单的三维窗户模型。通过官方教程搭建环境,编写绘制窗户模型的代码,并在点击按钮后展示模型效果。最终模型包括窗框和玻璃部分,具备丰富的三维建模功能和便捷的API支持。
787 123
|
人工智能 搜索推荐 IDE
突破网页数据集获取难题:Web Unlocker API 助力 AI 训练与微调数据集全方位解决方案
本文介绍了Web Unlocker API、Web-Scraper和SERP API三大工具,助力解决AI训练与微调数据集获取难题。Web Unlocker API通过智能代理和CAPTCHA绕过技术,高效解锁高防护网站数据;Web-Scraper支持动态内容加载,精准抓取复杂网页信息;SERP API专注搜索引擎结果页数据抓取,适用于SEO分析与市场研究。这些工具大幅降低数据获取成本,提供合规保障,特别适合中小企业使用。粉丝专属体验入口提供2刀额度,助您轻松上手!
979 2
|
移动开发 前端开发 API
鸿蒙web加载本地网页资源异常
在鸿蒙NEXT Api 12中,为解决Web组件加载本地资源(如图片、CSS等)失败的问题,我们采用拦截机制。具体步骤如下: 1. **替换路径**:通过正则表达式将HTML和CSS中的资源路径替换为带有标记的URL(如`http://local`),以便后续识别。 2. **拦截与返回**:在资源加载时,拦截带有标记的URL,读取对应的本地文件并返回给Web组件。此过程确保了本地资源能正确加载和显示。 代码实现包括路径替换、资源拦截及响应构建,确保Web页面能够顺利加载本地资源。
815 7
|
数据采集 存储 前端开发
Puppeteer教程:使用CSS选择器点击和爬取动态数据
本文介绍如何使用Puppeteer结合CSS选择器爬取动态网页数据,以贝壳网的二手房价格为例,通过代理IP提高爬虫成功率。文章详细讲解了Puppeteer的安装和配置、代码实现及数据趋势分析,帮助读者掌握动态网页爬取技术。
794 1
Puppeteer教程:使用CSS选择器点击和爬取动态数据
|
前端开发 JavaScript 搜索推荐
HTML与CSS在Web组件化中的核心作用及前端技术趋势
本文探讨了HTML与CSS在Web组件化中的核心作用及前端技术趋势。从结构定义、语义化到样式封装与布局控制,两者不仅提升了代码复用率和可维护性,还通过响应式设计、动态样式等技术增强了用户体验。面对兼容性、代码复杂度等挑战,文章提出了相应的解决策略,强调了持续创新的重要性,旨在构建高效、灵活的Web应用。
524 6
|
前端开发 UED 开发者
CSS Sprites和图标字体在网页图标加载优化中的应用。CSS Sprites通过合并多图标减少HTTP请求,提升加载速度
本文探讨了CSS Sprites和图标字体在网页图标加载优化中的应用。CSS Sprites通过合并多图标减少HTTP请求,提升加载速度;图标字体则以字体形式呈现图标,便于调整样式。文章分析了两者的优缺点及应用场景,并提供了应用技巧和注意事项,旨在帮助开发者提升页面性能,改善用户体验。
314 5
|
前端开发 JavaScript UED
在数字化时代,Web 应用性能优化尤为重要。本文探讨了CSS与HTML在提升Web性能中的关键作用及未来趋势
在数字化时代,Web 应用性能优化尤为重要。本文探讨了CSS与HTML在提升Web性能中的关键作用及未来趋势,包括样式表优化、DOM操作减少、图像优化等技术,并分析了电商网站的具体案例,强调了技术演进对Web性能的深远影响。
317 5
|
数据可视化 前端开发 搜索推荐
FLEX组件可视化设计器CSS3代码生成器
FLEX组件可视化设计器CSS3代码生成器
341 4
|
存储 前端开发 安全
详解CSS之Web 字体
详解CSS之Web 字体
351 4