6-9 分页导航(带页码的分页导航)
本节编程练习不计算学习进度,请电脑登录imooc.com操作

分页导航(带页码的分页导航)

分页导航几乎在哪个网站都可见。好的分页导航能给用户带来更好的用户体验。在Bootstrap框架中提供了两种分页导航:

   ☑   带页码的分页导航

   ☑   带翻页的分页导航

带页码的分页导航

带页码的分页导航,可能是最常见的一种分页导航,特别是在列表页内容超多的时候,会给用户提供分页的导航方式。在Bootstrap框架为开发者提供不同的版本:

   ☑   LESS版本:对应的源文件pagination.less

   ☑   Sass版本:对应的源文件_pagination.scss

   ☑   编译后版本:对应bootstrap.css文件第4130行~第4222行

使用方法:

平时很多同学喜欢用div>adiv>span结构来制作带页码的分页导航。不过,在Bootstrap框架中使用的是ul>li>a这样的结构,在ul标签上加入pagination方法:

<ul class="pagination">
   <li><a href="#">&laquo;</a></li>
   <li><a href="#">1</a></li>
   <li><a 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="#">&raquo;</a></li>
</ul>

运行效果:

实现原理:

从效果中可以看出,当前状态页码会高亮显示,而且不能点击。而最后一页是禁用状态,也不能点击。实现样式:

/*bootstrap.css文件第4170行~第4192行*/

.pagination> .active > a,
.pagination> .active > span,
.pagination> .active >a:hover,
.pagination> .active >span:hover,
.pagination> .active >a:focus,
.pagination> .active >span:focus {
z-index: 2;
color: #fff;
cursor: default;
background-color: #428bca;
border-color: #428bca;
}
.pagination> .disabled > span,
.pagination> .disabled >span:hover,
.pagination> .disabled >span:focus,
.pagination> .disabled > a,
.pagination> .disabled >a:hover,
.pagination> .disabled >a:focus {
color: #999;
cursor: not-allowed;
background-color: #fff;
border-color: #ddd;
}

注意:要禁用当前状态和禁用状态不能点击,我们还要依靠js来实现,或者将这两状态下的a标签换成span标签。

大小设置:

在Bootstrap框架中,也可以通过几个不同的情况来设置其大小。类似于按钮一样:

1、通过“pagination-lg”让分页导航变大

2、通过“pagination-sm”让分页导航变小

<ul class="pagination pagination-lg">
 …
</ul>
<ul class="pagination">
 …
</ul>
<ul class="pagination pagination-sm">
 …
</ul>

运行效果查看最右侧结果窗口。

大小设置实现原理:

其实就是通增加相应的padding大小、font-size大小和圆角大小,源码查看bootstrap.css文件第4193行~第4222行,这30行代码已从原文中节取出来,放在右侧代码顶部“bootstrap.css”文件中,小伙伴们可以查看。
 

任务

本小节没有代码任务,单击“提交”按钮进行下一个小节学习。

 

  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  5. <title>分页导航</title>
  6. <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
  7. </head>
  8.  
  9. <body>
  10. <!--代码-->
  11. <ul class="pagination pagination-lg">
  12. <li><a href="#">&laquo;第一页</a></li>
  13. <li><a href="#">11</a></li>
  14. <li><a href="#">12</a></li>
  15. <li class="active"><a href="#">13</a></li>
  16. <li><a href="#">14</a></li>
  17. <li><a href="#">15</a></li>
  18. <li class="disabled"><a href="#">最后一页&raquo;</a></li>
  19. </ul>
  20.  
  21. <ul class="pagination pagination">
  22. <li><a href="#">&laquo;第一页</a></li>
  23. <li><a href="#">11</a></li>
  24. <li><a href="#">12</a></li>
  25. <li class="active"><a href="#">13</a></li>
  26. <li><a href="#">14</a></li>
  27. <li><a href="#">15</a></li>
  28. <li class="disabled"><a href="#">最后一页&raquo;</a></li>
  29. </ul>
  30. <ul class="pagination pagination-sm">
  31. <li><a href="#">&laquo;第一页</a></li>
  32. <li><a href="#">11</a></li>
  33. <li><a href="#">12</a></li>
  34. <li class="active"><a href="#">13</a></li>
  35. <li><a href="#">14</a></li>
  36. <li><a href="#">15</a></li>
  37. <li class="disabled"><a href="#">最后一页&raquo;</a></li>
  38. </ul>
  39.  
  40. <script src="https://www.imooc.com/static/lib/jquery/1.9.1/jquery.js"></script>
  41. <script src="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
  42.  
  43. </body>
  44. </html>
  1. .pagination-lg> li > a,
  2. .pagination-lg> li > span {
  3. padding: 10px 16px;
  4. font-size: 18px;
  5. }
  6. .pagination-lg>li:first-child> a,
  7. .pagination-lg>li:first-child> span {
  8. border-top-left-radius: 6px;
  9. border-bottom-left-radius: 6px;
  10. }
  11. .pagination-lg>li:last-child> a,
  12. .pagination-lg>li:last-child> span {
  13. border-top-right-radius: 6px;
  14. border-bottom-right-radius: 6px;
  15. }
  16. .pagination-sm> li > a,
  17. .pagination-sm> li > span {
  18. padding: 5px 10px;
  19. font-size: 12px;
  20. }
  21. .pagination-sm>li:first-child> a,
  22. .pagination-sm>li:first-child> span {
  23. border-top-left-radius: 3px;
  24. border-bottom-left-radius: 3px;
  25. }
  26. .pagination-sm>li:last-child> a,
  27. .pagination-sm>li:last-child> span {
  28. border-top-right-radius: 3px;
  29. border-bottom-right-radius: 3px;
  30. }
下一节