【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>

打开浏览器,可以看到:

目录
相关文章
N..
|
1月前
|
开发框架 前端开发 UED
Bootstrap的CSS组件
Bootstrap的CSS组件
N..
13 0
|
1月前
|
前端开发
web前端开发-----CSS样式设置
web前端开发-----CSS样式设置
32 0
|
1月前
|
资源调度 前端开发 CDN
纯css动画库animate.css的用法
纯css动画库animate.css的用法
47 0
|
1月前
|
前端开发 JavaScript UED
过渡效果的艺术:CSS transition 让网页交互更平滑(上)
过渡效果的艺术:CSS transition 让网页交互更平滑(上)
|
1月前
|
移动开发 前端开发 JavaScript
编程笔记 html5&css&js 005 网页上都有哪内容、形式和操作
编程笔记 html5&css&js 005 网页上都有哪内容、形式和操作
|
2月前
|
IDE API 开发工具
 鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Web组件
 鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Web组件
47 2
|
1月前
|
前端开发
web前端开发---CSS基础选择器
web前端开发---CSS基础选择器
20 1
|
3天前
|
开发框架 前端开发 数据库
Python从入门到精通:3.3.2 深入学习Python库和框架:Web开发框架的探索与实践
Python从入门到精通:3.3.2 深入学习Python库和框架:Web开发框架的探索与实践
|
7天前
|
数据采集 前端开发 网络协议
如何使用代理IP通过HTML和CSS采集数据
如何使用代理IP通过HTML和CSS采集数据
|
12天前
|
前端开发 搜索推荐 数据安全/隐私保护
HTML标签详解 HTML5+CSS3+移动web 前端开发入门笔记(四)
HTML标签详解 HTML5+CSS3+移动web 前端开发入门笔记(四)
18 1