分页组件是前端页面中处理长列表数据的常用交互组件,通过css颜色的不同配置,可以清晰区分当前选中页码、可点击页码、禁用页码等不同状态,让用户快速识别操作位置,提升交互体验。

分页组件常见状态与颜色需求
一个完整的分页组件通常包含多种状态,不同状态需要通过颜色差异做区分,常见状态如下:
- 当前页码:需要高亮显示,让用户明确当前所处的分页位置
- 可点击页码:颜色稍浅,提示用户该页码可以点击跳转
- 禁用状态:比如第一页时的上一页按钮、最后一页时的下一页按钮,需要用置灰颜色提示不可操作
- hover状态:鼠标悬浮在可点击元素上时,颜色变化给用户反馈
基础分页组件结构搭建
首先搭建分页组件的基础HTML结构,包含上一页、页码列表、下一页三个部分:
<div class="pagination">
<button class="page-btn prev" disabled>上一页</button>
<ul class="page-list">
<li class="page-item active">1</li>
<li class="page-item">2</li>
<li class="page-item">3</li>
<li class="page-item">4</li>
<li class="page-item">5</li>
</ul>
<button class="page-btn next">下一页</button>
</div>
css颜色高亮效果实现
基础样式与颜色定义
先定义分页组件的基础样式,同时声明不同状态对应的颜色变量,方便后续统一调整:
/* 定义颜色变量 */
:root {
--active-color: #1890ff; /* 当前页高亮色 */
--default-color: #666666; /* 默认可点击文字色 */
--disabled-color: #cccccc; /* 禁用状态色 */
--hover-color: #40a9ff; /* hover状态色 */
--bg-color: #ffffff; /* 背景色 */
}
.pagination {
display: flex;
align-items: center;
gap: 8px;
font-size: 14px;
}
.page-btn, .page-item {
padding: 6px 12px;
border: 1px solid #d9d9d9;
border-radius: 4px;
cursor: pointer;
background-color: var(--bg-color);
color: var(--default-color);
transition: all 0.3s ease;
}
.page-list {
display: flex;
gap: 8px;
list-style: none;
margin: 0;
padding: 0;
}
不同状态的颜色配置
接下来针对不同状态配置对应的颜色规则:
/* 当前页码高亮效果 */
.page-item.active {
background-color: var(--active-color);
color: #ffffff;
border-color: var(--active-color);
}
/* 禁用状态颜色 */
.page-btn:disabled {
color: var(--disabled-color);
cursor: not-allowed;
border-color: #e8e8e8;
background-color: #f5f5f5;
}
/* 可点击元素hover状态颜色 */
.page-btn:not(:disabled):hover,
.page-item:not(.active):hover {
color: var(--hover-color);
border-color: var(--hover-color);
}
完整效果演示代码
将HTML和CSS组合后,就能得到带颜色高亮效果的分页组件,完整代码如下:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>分页组件颜色高亮示例</title>
<style>
:root {
--active-color: #1890ff;
--default-color: #666666;
--disabled-color: #cccccc;
--hover-color: #40a9ff;
--bg-color: #ffffff;
}
.pagination {
display: flex;
align-items: center;
gap: 8px;
font-size: 14px;
}
.page-btn, .page-item {
padding: 6px 12px;
border: 1px solid #d9d9d9;
border-radius: 4px;
cursor: pointer;
background-color: var(--bg-color);
color: var(--default-color);
transition: all 0.3s ease;
}
.page-list {
display: flex;
gap: 8px;
list-style: none;
margin: 0;
padding: 0;
}
.page-item.active {
background-color: var(--active-color);
color: #ffffff;
border-color: var(--active-color);
}
.page-btn:disabled {
color: var(--disabled-color);
cursor: not-allowed;
border-color: #e8e8e8;
background-color: #f5f5f5;
}
.page-btn:not(:disabled):hover,
.page-item:not(.active):hover {
color: var(--hover-color);
border-color: var(--hover-color);
}
</style>
</head>
<body>
<div class="pagination">
<button class="page-btn prev" disabled>上一页</button>
<ul class="page-list">
<li class="page-item active">1</li>
<li class="page-item">2</li>
<li class="page-item">3</li>
<li class="page-item">4</li>
<li class="page-item">5</li>
</ul>
<button class="page-btn next">下一页</button>
</div>
</body>
</html>
注意事项
在实际应用css颜色到分页组件高亮效果时,需要注意以下几点:
- 颜色对比度要符合无障碍标准,避免浅色文字配浅色背景导致看不清
- 如果页面有主题切换需求,可以通过css变量统一调整颜色,不需要修改多处样式
- 禁用状态的颜色要和可点击状态有明显区分,避免用户误操作
- 过渡动画的时间不要设置过长,0.2s到0.3s是比较合适的区间,不会影响操作流畅度