今天在写一个分页导航的时候,把 ul 转换成 display:inline-block 时候,会发现元素之间会有间隙,类似以下这样:
加个边框后会发现,元素实际上会出现间隙,之前用的时候都还没很在意这样的问题,后面上网查了一下,才发现算是一个小 bug
原因是这样的:HTML 代码中的回车换行被转成一个空白符,在字体不为 0 的情况下,空白符占据一定宽度,所以 inline-block 的元素之间就出现了空隙。这些元素之间的间距会随着字体的大小而变化,当行内元素 font-size:16px 时,间距为 8px
所以根据以上原因,想到的解决办法有,为了删除这样看不见的空格:
1. 使用 float:left 浮动布局,缺点就是会有元素的塌陷
2. 父元素的 font-size 设为 0,letter-spacing 和 word-spacing 设为负数
3. 使用 margin-left:-4px,这个数值还得看实际情况而定
我这边使用了第一种方法,代码和实际效果如下: