IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

IE6,IE7中负缩进的问题

记事本 2010-08-13 09:51:42 累计浏览 2,099 次
本机暂存

在IE6,IE7下面给display: inline-block的元素设置text-indent: -9999px会把这个元素以及后面的元素拉走。请在IE6和IE7下,查看演示

 
01 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
02 <html xmlns="http://www.w3.org/1999/xhtml">
03 <head>
04   <title>TEST</title>
05   <style type="text/css">
06     .bar {
07       border: 1px solid;
08       display: inline-block;
09       height: 18px;
10     }
11     .bar .icon {
12       display: inline-block;
13       width: 16px;
14       height: 16px;
15       background: red;
16       text-indent: -9999px;
17     }
18   </style>
19   <!--[if lte IE 7]>
20   <style type="text/css">
21     .bar {
22       display: inline;
23     }
24   </style>
25   <![endif]-->
26 </head>
27 <body>
28   <input type="text" />
29   <div class="bar">
30     <span class="icon"></span>
31     <span>HELLO KITTY HELLO KITTY HELLO KITTY</span>
32   </div>
33 </body>
34 </html>

在IE6,IE7下可以看到.bar里面的内容都没有了。最开始的想法是让.icon浮动来解决这个问题,可是用css hack给.icon加上float: left居然不起作用,.icon后面的文字仍然被拉走。这时候只好在blueidea求助,结果那里的版主(yoom)想法和我的一样,让.icon浮动,但是他比我多加了个display: block,最终这个BUG被修正了。正常情况下,span元素加上float之后就已经是block级别了,但就是这个display: block起了决定性的作用,按yoom的话说,真是无心插柳啊。

最终的CSS HACK为:

 
01 <!--[if lte IE 7]>
02 <style type="text/css">
03   .bar {
04     display: inline;
05   }
06   .bar .icon {
07     display: block;
08     float: left;
09   }
10 </style>
11 <![endif]-->

同分类推荐文章

  1. translateZ() (2026-06-25 21:18:56)
  2. translateY() (2026-06-25 21:17:56)
  3. translateX() (2026-06-25 21:16:01)

查看更多 前端 文章 →

建议继续学习

  1. 50个活力和动感的网页设计-颜色的灵感 (累计阅读 34,442)
  2. 视觉设计前瞻实用性研究(PNVD) 第二期 (累计阅读 12,977)
  3. 各公司对前端开发的职位描述 (累计阅读 10,405)
  4. iframe大小自适应 (累计阅读 10,057)
  5. 浏览器的渲染原理简介 (累计阅读 8,377)
  6. 解决IE6从Nginx服务器下载图片不Cache的Bug (累计阅读 8,357)
  7. 程序员眼里IE浏览器是什么样的 (累计阅读 8,011)
  8. 2010网页设计趋势 (累计阅读 7,818)
  9. Web前端工程师编程能力飞升之路 (累计阅读 7,691)
  10. 颜色的代码表达式 (累计阅读 7,665)