3)Firefox,Opera
经测试,Firefox12,Opera 10 ,这次表现不错,支持 font-size:0 。
4)IE
IE8 以上支持 font-size:0;IE6、7 inline 元素 inline-block 后设置 font-size:0 始终有 1px 的空隙。
是不是一下子又开始头疼了?没关系,让我们请出 letter-spacing 和 word-spacing 二位大神。既然空白符也是字符,那么二位大神肯定是可以搞定它们的。
letter-spacing : normal | length (检索或设置对象中的文字之间的间隔)word-spacing : normal | length(检索或设置对象中的单词之间插入的空隔)
normal: 默认间隔
length: 用长度值指定间隔,允许为负值。
还等什么,我们赶紧试试吧:
第一步:使用 font-size:0经测试发现,chrome、firefox、IE8+、opera,inline 或 block 元素都没有空隙了;
Safari 5.1.7 由于不支持 font-size:0 ,仍然存在空隙;
IE6、7、8(Q),inline 元素 inline-block 后始终存在 1px 左右的空隙。
第二步:处理 Safari 不支持 font-size:0 的问题上面已经指出 letter-spacing 是支持负值的,那么这个负值到底取多少合适呢?经过测试得出的结论是:inline-block 产生的空隙与父级元素继承或者设定的 font-family、font-size 有关,通常情况下,12px 大小的 tahoma 字体,inline-block 后元素间产生的空隙(间隙)大约是 5px;
各个字体详细情况请参阅《inline-block空隙–letter-spacing与字体大小/字体关系数据表》。Firefox 中 letter-spacing 负值的绝对值大于空隙大小后,会导致元素整体位置向右偏移;
Safari 中 letter-spacing 负值的绝对值大于空隙大小后,内部会发生重叠。
第三步:修复 IE6、7 中始终存在的 1px 空隙
既然 letter-spacing 已经无能为力了,那就试试 word-spacing 吧,直接设置 word-spacing:-1px。这里需要注意的是,letter-spacing 和 word-spacing 同时使用可能导致冲突,所以我们需要在 IE6、7 中 hack 掉 letter-spacing。最终代码如下:
复制代码
font-size:0;/* 所有浏览器 */
letter-spacing:-5px;/* Safari 等不支持字体大小为 0 的浏览器 */
*letter-spacing:normal;
word-spacing:-1px;/* IE6、7 */
第四步:子元素重置回正常值










