原因:浏览器会把inline元素间的空白字符(空格、换行、Tab等)渲染成一个空格;
为了美观,我们通常是一个<li>放在一行,这导致<li>换行后产生换行字符,她变成一个空格,占用了一个字符的宽度。
1. li和li之间有看不见的空白间隔怎么办?
解决方法:
(1)为<li>设置float:left。不足:有些容器不能设置浮动,如左右切换的焦点图等;
(2)将所有<li>写在一行。不足:代码不美观;
(3)将<ul>内的字符大小设置为0(font-size:0)。不足:<ul>中的字符大小也被设置为0,需要额外重新设置其他字符的大小,且在Safari浏览器依然会出现空白间隔;
(4)消除<ul>的字符间隔(letter-spacing:-8px)。不足:将<li>内的字符间隔也设置了,因此需要将<li>内的字符间隔设置为默认(letter-spacing:normal)
视具体情况而定。
2.写了两个a标签,两个标签之间有空格的情况怎么解决?
解决方法:
(1)给a标签加浮动;
(2)将a标签写在一行;
(3)a标签的父级元素设置font-size:0,然后再a标签中设置回来(一定要在a标签中设置,否则不会显示)
(4)给a标签的父标签加字间距letter-spacing:-999px, 在a标签中加:letter-spacing:0