inline-block和text-indent在ie7以下的兼容

最近才发现的这个兼容性问题,因为之前写列表的时候,大部分是通过float:left;和清除浮动来做的,最近看到了可以使用inline-block来做,而且还是可以兼容的,所以逐步的转向了用inline-block替换。

欢迎回归我之前写过的文章: inline-block代替浮动布局float:left列表布局最佳方案

具体代码有:

.list {
font-size:0;/* 所有浏览器 */
*word-spacing:-1px;/* IE6、7 */
}
.list ul li{
font-size: 12px;
letter-spacing: normal;
word-spacing: normal;
vertical-align:top;
display: inline-block;
*display:inline;
*zoom:1;
}
@media screen and (-webkit-min-device-pixel-ratio:0){
/* firefox 中 letter-spacing 会导致脱离普通流的元素水平位移 */
.list{
letter-spacing:-5px;/* Safari 等不支持字体大小为 0 的浏览器, N 根据父级字体调节*/
}
}

这一次遇到的问题是这样子的,在列表里面使用了一个图标并需要隐藏文字

.text-hide{text-indent:100%; white-space:nowrap; overflow:hidden; background:url(icon.gif) no-repeat; width:18px; height:15px;}

上面的文字隐藏方案见https://qdkfweb.cn/348.html中的图片替代文字优化方案。

但是这次不行了,因为我在<li><img src=”bak.jpg”><i class=”text-hide”>隐藏文字</i></li>这里列表使用了inline-block了,ie7以下(包括)的图层都消失了,我想要它文字消失,背景出来的。

没办法,直接去掉text-indent,改为line-height:0; font-size:0;了,没办法了。兼容了ie系列了,但是感觉不是最佳方案,不知道还有其他方法没有。

另外我还发现

在IE6中使用第一种文字隐藏方案,有时候还会出现x轴滚动条,也是一个bug,所以这种方法也不靠谱。需要找原因和解决方案。


关注我

我的微信公众号:前端开发博客,在后台回复以下关键字可以获取资源。

  • 回复「小抄」,领取Vue、JavaScript 和 WebComponent 小抄 PDF
  • 回复「Vue脑图」获取 Vue 相关脑图
  • 回复「思维图」获取 JavaScript 相关思维图
  • 回复「简历」获取简历制作建议
  • 回复「简历模板」获取精选的简历模板
  • 回复「加群」进入500人前端精英群
  • 回复「电子书」下载我整理的大量前端资源,含面试、Vue实战项目、CSS和JavaScript电子书等。
  • 回复「知识点」下载高清JavaScript知识点图谱

每日分享有用的前端开发知识,加我微信:caibaojian89 交流