Bootstrap - Bootstrap pagination
Bootstrap pagination is a component that allows you to break content into pages and navigate between them. It’s commonly used for tables, lists, blogs, or galleries. Bootstrap provides pre-styled pagination elements that are responsive, accessible, and customizable.
1. Basic Pagination Structure
Bootstrap uses an unordered list (<ul>
) with the class .pagination
. Each page item is a <li>
with the class .page-item
, and the clickable link inside is <a>
with .page-link
.
Example (Bootstrap 5):
<nav aria-label="Page navigation">
<ul class="pagination">
<li class="page-item"><a class="page-link" href="#">Previous</a></li>
<li class="page-item"><a class="page-link" href="#">1</a></li>
<li class="page-item"><a class="page-link" href="#">2</a></li>
<li class="page-item"><a class="page-link" href="#">3</a></li>
<li class="page-item"><a class="page-link" href="#">Next</a></li>
</ul>
</nav>
Explanation:
-
.pagination
→ Styles the<ul>
as a pagination container. -
.page-item
→ Styles individual list items. -
.page-link
→ Styles the clickable links.
2. Active and Disabled States
Active Page
Indicates the current page:
<li class="page-item active" aria-current="page">
<a class="page-link" href="#">2</a>
</li>
Disabled Page
Disables a page link:
<li class="page-item disabled">
<a class="page-link" href="#" tabindex="-1" aria-disabled="true">Previous</a>
</li>
3. Pagination Sizes
Bootstrap supports small, default, and large pagination using size classes on <ul>
:
<!-- Large Pagination -->
<ul class="pagination pagination-lg">
<li class="page-item"><a class="page-link" href="#">1</a></li>
<li class="page-item active"><a class="page-link" href="#">2</a></li>
<li class="page-item"><a class="page-link" href="#">3</a></li>
</ul>
<!-- Default Pagination -->
<ul class="pagination">
<li class="page-item"><a class="page-link" href="#">1</a></li>
<li class="page-item active"><a class="page-link" href="#">2</a></li>
<li class="page-item"><a class="page-link" href="#">3</a></li>
</ul>
<!-- Small Pagination -->
<ul class="pagination pagination-sm">
<li class="page-item"><a class="page-link" href="#">1</a></li>
<li class="page-item active"><a class="page-link" href="#">2</a></li>
<li class="page-item"><a class="page-link" href="#">3</a></li>
</ul>
4. Alignment of Pagination
You can align pagination using Bootstrap flex utilities:
<!-- Centered -->
<ul class="pagination justify-content-center">
<li class="page-item"><a class="page-link" href="#">1</a></li>
<li class="page-item active"><a class="page-link" href="#">2</a></li>
<li class="page-item"><a class="page-link" href="#">3</a></li>
</ul>
<!-- Right Aligned -->
<ul class="pagination justify-content-end">
<li class="page-item"><a class="page-link" href="#">1</a></li>
<li class="page-item active"><a class="page-link" href="#">2</a></li>
<li class="page-item"><a class="page-link" href="#">3</a></li>
</ul>
5. Pagination with Icons / Symbols
You can use “Previous” / “Next” text or symbols like «
and »
:
<ul class="pagination">
<li class="page-item disabled">
<a class="page-link" href="#" tabindex="-1">« Previous</a>
</li>
<li class="page-item"><a class="page-link" href="#">1</a></li>
<li class="page-item active"><a class="page-link" href="#">2</a></li>
<li class="page-item"><a class="page-link" href="#">3</a></li>
<li class="page-item">
<a class="page-link" href="#">Next »</a>
</li>
</ul>
6. Bootstrap 3 vs 4/5 Differences
Feature | Bootstrap 3 | Bootstrap 4 & 5 |
---|---|---|
Base class | .pagination |
.pagination |
Active page | .active |
.active + aria-current="page" |
Disabled page | .disabled |
.disabled + aria-disabled="true" |
Link class | <a> without .page-link |
.page-link required |
Sizing | .pagination-lg / .pagination-sm |
Same in 4 & 5 |
Alignment | .pagination-centered |
.justify-content-center |
Responsive | Not fully responsive | Fully responsive |
7. Full Example – Bootstrap 5 Pagination
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Bootstrap Pagination</title>
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body class="p-4">
<h2>Bootstrap 5 Pagination Example</h2>
<!-- Basic Pagination -->
<nav aria-label="Page navigation">
<ul class="pagination">
<li class="page-item disabled">
<a class="page-link" href="#" tabindex="-1" aria-disabled="true">Previous</a>
</li>
<li class="page-item"><a class="page-link" href="#">1</a></li>
<li class="page-item active" aria-current="page"><a class="page-link" href="#">2</a></li>
<li class="page-item"><a class="page-link" href="#">3</a></li>
<li class="page-item">
<a class="page-link" href="#">Next</a>
</li>
</ul>
</nav>
<!-- Centered Pagination -->
<ul class="pagination justify-content-center mt-3">
<li class="page-item"><a class="page-link" href="#">1</a></li>
<li class="page-item active" aria-current="page"><a class="page-link" href="#">2</a></li>
<li class="page-item"><a class="page-link" href="#">3</a></li>
</ul>
<!-- Small Pagination -->
<ul class="pagination pagination-sm mt-3">
<li class="page-item"><a class="page-link" href="#">1</a></li>
<li class="page-item active" aria-current="page"><a class="page-link" href="#">2</a></li>
<li class="page-item"><a class="page-link" href="#">3</a></li>
</ul>
<!-- Large Pagination -->
<ul class="pagination pagination-lg mt-3">
<li class="page-item"><a class="page-link" href="#">1</a></li>
<li class="page-item active" aria-current="page"><a class="page-link" href="#">2</a></li>
<li class="page-item"><a class="page-link" href="#">3</a></li>
</ul>
</body>
</html>