用 inline-block 做页码导航易出白缝,因换行与空格被解析为约 4px 间隙;解决法包括删换行、父容器 font-size:0、注释隔断或改用 ul+li 结构并重置样式;当前页需手动加 active 类,移动端需 min-width≥44px;响应式下建议小屏切 flex 布局,动态省略号须 js 实现。

为什么用 inline-block 做页码导航容易出白缝?
直接写 <a>1</a><a>2</a><a>3</a> 并设 display: inline-block,浏览器会把换行和空格解析成空白字符,导致每个页码间多出约 4px 间隙。这不是 bug,是规范行为。
常见错误现象:页码横向排列后左右不对齐、间距不均、最后一项被挤到下一行。
- 删 HTML 换行:写成
<div class="pagination"> <a>1</a><a>2</a><a>3</a> </div> - 父容器设
font-size: 0,子元素再单独设font-size - 用注释消除空格:
<a>1</a><!-- --><a>2</a><!-- --><a>3</a>
ul + li 结构下 inline-block 的关键 CSS 设置
语义更清晰,也方便后期加 aria-current="page" 等可访问性属性。但别漏掉基础重置。
必须写的几条:
-
nav ul要设list-style: none; margin: 0; padding: 0; -
nav li设display: inline-block;,不是a元素本身——否则无法控制整体宽度和 hover 区域 -
nav a必须设display: block;,否则padding不生效,点击热区太小 - 为避免换行,
nav ul推荐加white-space: nowrap;
页码“当前页”高亮的实现逻辑
纯静态页无法自动判断当前页,必须手动在对应 <a></a> 上加 class="active"。CSS 里不能只靠 :hover 或 :focus 代替。
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
典型写法:
nav a.active {
background-color: #007bff;
color: white;
pointer-events: none; /* 防止重复点击 */
}
注意点:
- 别用
nav a:visited模拟当前页——不可靠,且样式易被用户代理覆盖 - 如果页码含 “上一页/下一页”,它们不应有
active类,也不该参与pointer-events: none - 移动端需确保
min-width≥ 44px,否则触控不灵敏
响应式断点下 inline-block 的 fallback 方案
小屏时页码太多会折行或溢出容器,inline-block 本身不支持自动换行控制。这时候硬撑不如切换布局。
推荐做法:
- 用媒体查询在
max-width: 768px下改用flex,并设flex-wrap: wrap - 对超出 5 个页码的情况,用 JavaScript 动态生成省略号(如
1 ... 5 6 7 ... 10),而非全量渲染 - 若必须保留
inline-block,至少给nav加overflow-x: auto和scrollbar-width: none(Firefox)
真正麻烦的不是怎么排,而是页码数量动态变化时,inline-block 完全没法做“中间省略+首尾固定”这种逻辑——那得交由 JS 控制 DOM,CSS 只负责呈现。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










