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。