分页按钮active未高亮主因是HTML中active类缺失或位置错误,应加在上并配.style .page-item.active .page-link;hover闪动源于盒模型抖动,需保持常态与hover占位一致;移动端需补:focus样式,响应式需flex-wrap和弹性布局;焦点样式不可省略,须满足无障碍标准。
分页按钮的 active 状态为什么没高亮?
多数人写完
样式却没反应,根本原因是 HTML 结构里漏了
类,或者它被加在了错误元素上——比如加在
上,但 CSS 却只写了
。
标准 Bootstrap 分页结构中,
应该加在
元素上,对应样式必须写成:
。如果自己手写结构,又习惯把
直接加在
上,那 CSS 就得匹配
,两者必须对齐。
检查浏览器开发者工具里实际渲染的 class 是否存在、位置是否正确
避免用
强行覆盖,优先理清选择器权重和结构匹配
如果用 JS 动态切换状态,确认 class 是通过
/
操作,而非字符串拼接出错
hover 效果一碰就闪动,鼠标移入移出不稳
这是典型的盒模型抖动:hover 时加了
或
导致元素尺寸变化,触发重排,进而让鼠标瞬间“离开”按钮区域,hover 失效,又立刻恢复……循环闪动。
解决方法不是禁用 hover,而是让常态和 hover 态的占位一致。比如常态设
,hover 改颜色;或统一用
(不影响布局);阴影类用
触发硬件加速也能缓解。
立即学习
“
前端免费学习笔记(深入)
”;
使用HTML,CSS,JavaScript开发Android应用程序 英文文字pdf版附源文件
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
下载
慎用
或
在 hover 中增减——它们必然引发重排
如果用
,确保常态下也有相同大小的透明阴影占位,例如:
移动端需额外加
样式,否则点击后无反馈
响应式断点下分页条换行错乱
小屏下数字页码挤成一团甚至折行,不是因为没写媒体查询,而是默认用了
或
,但容器宽度不够且子项没设最小宽度或换行策略。
Bootstrap 5 的
默认是
,但若你删了它,或用了旧版(v4 默认不换行),就会卡住溢出。更常见的是给
设了固定
,导致小屏下无法收缩。
保留
,并在小屏下用
强制竖排(适合极窄屏)
数字页码用
,让它们弹性分配空间,而不是死守
隐藏中间过多页码,只留首/尾/当前页 + 两侧各 1 个,用 JS 控制比纯 CSS 更可靠
键盘焦点与可访问性被 hover 样式覆盖
用户按 Tab 键聚焦到分页链接时,如果只写了
样式,焦点态会完全不可见——因为
的默认 outline 被你清掉了,又没补等效样式。
这不是“锦上添花”,而是 WCAG 2.1 要求的最低可访问标准。而且很多用户根本不用鼠标,靠键盘或读屏软件操作,缺了焦点样式等于功能残缺。
务必为
提供清晰视觉反馈,如深色背景+白色文字,或带边框的高对比 outline
不要用
一删了之;若真要自定义,用
+
保证识别度
测试时关闭鼠标,纯用 Tab 切换,看焦点是否连续、不跳步、不丢失
实际项目里最常被绕开的,是焦点样式和 hover 的共存逻辑——很多人以为“鼠标悬停才需要效果”,结果上线后被无障碍测试直接打回。状态切换看着简单,但 active / hover / focus / disabled 四种状态两两叠加,组合起来就是容易漏掉的盲区。
.page-item.active .page-linkactive.page-link.activeactive.page-item.active .page-linkactive.page-link.active!importantclassList.add()remove()borderbox-shadowborder: 2px solid transparentoutlinetransform: translateZ(0)marginpaddingbox-shadowbox-shadow: 0 0 0 0 rgba(0,0,0,0):focusdisplay: inline-flexdisplay: flex.paginationflex-wrap: wrap.page-linkwidthflex-wrap: wrapflex-direction: columnflex: 1 1 automin-width:hover:focus.page-link:focusoutline: noneoutline: 2px solid #007bffoutline-offset: 2px