CSS Pagination 分頁樣式設計
分頁導航(Pagination)是用於連結一系列相關內容的重要介面元素。一個好的分頁設計應該能讓使用者清晰地知道自己目前所在的頁數,並且能輕易地跳轉到其他頁面。
本篇介紹如何使用 Flexbox 實作各種常見的的分頁佈局樣式。
基本分頁結構
我們通常使用 <ul> 或 <nav> 來包裝分頁連結。
<nav class="pagination-container">
<ul class="pagination">
<li class="page-item disabled"><a href="#">上一頁</a></li>
<li class="page-item active"><a href="#">1</a></li>
<li class="page-item"><a href="#">2</a></li>
<li class="page-item"><a href="#">3</a></li>
<li class="page-item"><a href="#">...</a></li>
<li class="page-item"><a href="#">10</a></li>
<li class="page-item"><a href="#">下一頁</a></li>
</ul>
</nav>
實作預覽
這段程式碼會產生一個水平排列的分頁條,目前選中的頁碼(1)會呈現藍色底白字,其它頁碼則有灰色邊框。
核心 CSS 樣式
.pagination {
display: flex;
list-style: none;
padding: 0;
gap: 8px; /* 按鈕之間的間距 */
justify-content: center; /* 水平置中 */
}
.page-item a {
display: block;
padding: 8px 16px;
text-decoration: none;
color: #007bff;
border: 1px solid #dee2e6;
border-radius: 4px;
transition: all 0.2s;
}
/* 懸停效果 */
.page-item a:hover {
background-color: #e9ecef;
border-color: #dee2e6;
}
/* 目前選中頁面 (Active) */
.page-item.active a {
background-color: #007bff;
color: white;
border-color: #007bff;
}
/* 禁用狀態 (Disabled) */
.page-item.disabled a {
color: #6c757d;
pointer-events: none; /* 防止點擊 */
background-color: #fff;
border-color: #dee2e6;
cursor: not-allowed;
}
不同風格的分頁
圓形按鈕風格
這在現代、簡潔的網頁設計中非常受歡迎。
.pagination-round .page-item a {
width: 40px;
height: 40px;
padding: 0;
display: flex;
justify-content: center;
align-items: center;
border-radius: 50%; /* 變成圓形 */
}
<ul class="pagination-round">
<li class="page-item"><a href="#">1</a></li>
<li class="page-item"><a href="#">2</a></li>
<li class="page-item active"><a href="#">3</a></li>
<li class="page-item"><a href="#">4</a></li>
<li class="page-item"><a href="#">5</a></li>
</ul>
實作預覽
透過 border-radius: 50%,分頁按鈕會從矩形變成完美的正圓形,提供更具現代感的視覺回饋。
僅帶底線的簡約風格
常用於部落格文章列表的底部。
.pagination-minimal .page-item a {
border: none;
background: transparent;
color: #333;
}
.pagination-minimal .page-item.active a {
border-bottom: 2px solid #000;
border-radius: 0;
color: #000;
font-weight: bold;
}
<ul class="pagination-minimal">
<li class="page-item"><a href="#">Prev</a></li>
<li class="page-item"><a href="#">1</a></li>
<li class="page-item"><a href="#">2</a></li>
<li class="page-item active"><a href="#">3</a></li>
<li class="page-item"><a href="#">4</a></li>
<li class="page-item"><a href="#">5</a></li>
<li class="page-item"><a href="#">Next</a></li>
</ul>
實作預覽
響應式考量
在手機等窄版螢幕上,分頁按鈕數量太多會導致換行或溢出。
- 隱藏中間頁碼:僅顯示「首頁」、「末頁」以及「目前頁碼」的前後各一頁。
- 使用較大的點擊區域:確保行動裝置的使用者能輕易點擊到數字,建議按鈕至少要有
40x40px。 - 改用「載入更多」:在行動裝置上,無限捲動(Infinite Scroll)或「載入更多」按鈕有時是比分頁導航更好的選擇。
分頁設計的核心在於「回饋」。當使用者點擊某個頁碼後,應該要有明顯的視覺變化(如 Active 樣式)以及頁面內容的對應更新。