Пагинация CSS
В этом уроке мы создаём адаптивную пагинацию с помощью CSS.
Сайту с большим количеством страниц может быть полезна пагинация на каждой из них.
Обычная разметка — это маркированный список (<ul>) с серией ссылок: по одной ссылке на каждый номер страницы, а также элементы управления «назад» и «вперёд».
Пример
Простой вариант:
Результат: полная HTML-страница
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Simple Pagination</title>
<style>
.pagination {
display: flex;
justify-content: center;
list-style: none;
padding: 0;
}
.pagination li a {
display: block;
padding: 8px 12px;
text-decoration: none;
border: 1px solid gray;
color: black;
margin: 0 4px;
border-radius: 5px;
}
</style>
</head>
<body>
<h2>Simple Pagination</h2>
<ul class="pagination">
<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="#">4</a></li>
<li><a href="#">5</a></li>
<li><a href="#">»</a></li>
</ul>
</body>
</html>
Объяснение примера
За расположение отвечают три объявления в контейнере пагинации:
display: flex;размещает номера страниц в горизонтальный рядjustify-content: center;центрирует этот рядlist-style: none;убирает маркеры списка
Внешний вид номеров страниц задаёт элемент <a> внутри каждого <li>, оформленный с помощью таких свойств, как display, padding, text-decoration, border, color и border-radius.
Пагинация с классом Active
Класс .active отмечает текущую страницу, чтобы пользователи понимали, где находятся.
Пример
Тот же список, теперь с классом .active:
Результат: полная HTML-страница
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Pagination With Active Class</title>
<style>
.pagination {
display: flex;
justify-content: center;
list-style: none;
padding: 0;
}
.pagination li a {
display: block;
padding: 8px 12px;
text-decoration: none;
border: 1px solid gray;
color: black;
margin: 0 4px;
border-radius: 5px;
}
.pagination li a.active {
background-color: #4CAF50;
color: white;
}
</style>
</head>
<body>
<h2>Pagination With Active Class</h2>
<ul class="pagination">
<li><a href="#">«</a></li>
<li><a href="#">1</a></li>
<li><a href="#" class="active">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
<li><a href="#">5</a></li>
<li><a href="#">»</a></li>
</ul>
</body>
</html>
Пагинация с классом Disabled
На последней странице кнопка «Вперёд» не должна работать.
С этим справляется класс .disabled: его настройки color, cursor и pointer-events делают кнопку «Вперёд» некликабельной.
Пример
Снова список, теперь с классом .disabled:
Результат: полная HTML-страница
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Pagination With Disabled Class</title>
<style>
.pagination {
display: flex;
justify-content: center;
list-style: none;
padding: 0;
}
.pagination li a {
display: block;
padding: 8px 12px;
text-decoration: none;
border: 1px solid gray;
color: black;
margin: 0 4px;
border-radius: 5px;
}
.pagination li a.active {
background-color: #4CAF50;
color: white;
}
.pagination li a.disabled {
color: #dddddd;
cursor: not-allowed;
pointer-events: none;
}
</style>
</head>
<body>
<h2>Pagination With Disabled Class</h2>
<ul class="pagination">
<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="#">4</a></li>
<li><a href="#" class="active">5</a></li>
<li><a href="#" class="disabled">»</a></li>
</ul>
</body>
</html>