li与li产生空白的原因,以及解决的方法

222 阅读1分钟

li与li产生空白的原因

因为浏览器会把内联元素之间的空白字符(比如空格、换行、Tab等)统统都渲染成一个空格。为了代码美观通常都会把一个li标签写成一行,li换行之后产生的换行字符就会变成一个空格,同时也占用了一个字符的宽度。

解决方法

(1)给<li></li> 设置float: left。这显然某些场景下是不能设置浮动的,如录播图的左右切换等

(2)将所有的li写成一行, 这样显然不美观

(3)将ul内的字体大小设置为font-size: 0,同时其他字符尺寸也被设为0,需要额外重新设定其他字符尺寸,且在Safari浏览器依然会出现空白间隔。

(4)消除<ul>的字符间隔letter-spacing:-8px,同时也设置了<li>内的字符间隔,因此需要将<li>内的字符间隔设为默认letter-spacing:normal。