IE7的web标准之道——8:(修正)躲猫猫bug


IE7的web标准之道

IE历来被web标准的拥护者所诟病,而当FireFox横空出世以后,更多的网页制作者开始关注web标准设计。看着FireFox的市场占有率不停的上升,微软终于推出了IE7。但IE7是否真的能够力挽狂澜,是否真的能够得到用户的信任,是否真的能够得到网页设计者的认可呢?

且看《IE7的web标准之道》系列文章,和你一起见证IE7的改变!

躲猫猫,你来找我呀!

上一篇文章中,我们曾经提到过这个bug,它的著名来源于它所表现出来的诡异现象。虽然今天是4月1日,但是这些都是真实的。为了大家能够进一步的记住这个诡异的bug,这里我将改变以往的写作方式,而是首先将现象演示给大家看。为了更好的表现出效果,这次我采用了flash的记录方式,点击这个图标 即可看到flash映像。如果,你的浏览器不支持flash播放,请你直接下载flash文件,采用其他软件查看,给你带来不便,请谅解。

IE6躲猫猫bug效果截图
IE6躲猫猫bug效果截图(点击图片查看完整大图)

原来那儿有字呀!

如果只看上面的效果截图图片,你可能感觉有些纳闷。这是什么呀?不就是一个普通的没啥字的网页吗,没啥了不起的呀。但是当你看到这个网页的源码的时候,也许就会感到惊讶了——

提示:可以先在文本框内,根据需要修改代码后再运行

猫猫躲到哪里去了呢?

看后源码,是否感到奇怪呢?那大片大片的文字都跑到那里去了呢?答案和往常一样令人遗憾——没有任何官方的说明和解释,只有江湖上比较得到认可的答案。

江湖上比较认可的解释是——被id为“#holder”那个div的背景颜色给盖住了。至于为什么会盖住,除了当初的IE6开发团队,没有人能给你答案。江湖上比较认可的说法是IE6对z-index的解释有问题。无论原因如何,但是效果却是的确产生了,这也的确是IE6的一个bug。好在,我们有办法可以解决它。

如何找到猫猫?

其实方法还蛮多的,如果仔细看网页源代码中关于CSS部分的注释,其实就已经可以找到一些答案。这里列出一些方案,供大家参考。如果你有更好的办法,请到【博客园web标准设计小组】赐教,小弟这里先谢过了。只要采用下面方法的任意一种即可消灭bug——

  • 明确的指定最外面div容器(#holder)的宽度(相对宽度和绝对宽带都可以)。
  • 去掉最外面div容器(#holder)的背景颜色(或者背景图片)
  • 缩小浮动div容器(#floater)的高度到一定程度
  • 不浮动div容器(#floater)
  • 不使用<div class="clear"><div>技术

上面的方法只是理论上的,请根据实际需要采用不同的方法。另:这个bug在FireFox、safari、opera等浏览器下不会出现。因此本篇就没有截图。

外话:插一句和关于系列文章

插一句

以前有读者朋友问到:“这不是《IE7的web标准之道》吗?为什么讲的都是IE6的一些bug呀?有什么意义呀?”。其实意义很简单,这个系列讲到的所有bug,都是IE6中存在的,并且在IE7中已经得到修正的。是IE7相对于IE6的一种进步,也是IE7相对于IE6而言,更向web标准靠近的一种证明。现在浏览器市场IE6的份额依然很高,正是IE6、IE7和FireFox三分天下的时候。讲这些IE6独有的bug,并给出解决方案,对于如何让你的网页能够兼容更多的浏览器,如何让你的网页更健壮还是有些作用的(至少我是这样认为的 ^_^)。并不是说,你一个人使用的浏览器是IE7,或者说你周围朋友的浏览器是IE7,就能说明世界上所有的人都在使用IE7浏览器。作为网页的浏览者,你的确可以不在乎这些东西,但是作为苦命的网页制作者,这些东西还是有一定的作用的。可能是因为我以前没有说明清楚,所以给你带来了误解,抱歉。

关于系列文章

现在我主要在维护的两个系列是《IE7的web标准之道》《阿一web标准学堂》。其中《IE7的web标准之道》是面向有一定网页制作基础的朋友的,而《阿一web标准学堂》则倾向于web标准初学者的朋友。为了更形象和生动,《阿一web标准学堂》采用视频讲解的方式(其实顺便强迫自己锻炼普通话也是重要原因 囧rz~),希望大家能对视频中我的普通话进行监督哦。这两个系列的更新频率,我会努力控制在一周一篇(讲)。

另外的还有三个系列——《实例讲解IE8新特性》《大家一起来博皮》以及《恶俗分享歌曲》系列。因为小弟时间和精力有限,所以只能在工作比较空闲的时候,不定期更新。对于关注这个3个系列的朋友,只能表示抱歉。

相关文章资源列表

posted @ 2008-04-01 17:36 阿一(杨正祎) 阅读(2971) 评论(28)  编辑 收藏 所属分类: IE7的web标准之道

  回复  引用  查看    
#1楼 2008-04-01 17:44 | jillzhang      
你的效率太高了
  回复  引用  查看    
#2楼 2008-04-01 17:45 | jillzhang      
另外,质量也很好
  回复  引用  查看    
#3楼 [楼主]2008-04-01 17:45 | 杨正祎(阿一)      
第一次加入灯箱效果(大图片和flash的展示)。希望没有影响大家的阅读习惯。
  回复  引用  查看    
#4楼 [楼主]2008-04-01 17:47 | 杨正祎(阿一)      
@jillzhang
因为没有什么的爱好,加上兴趣和爱好在这块,所以周末、下班以后基本都在搞这些东西。为此,我老婆还经常埋怨我不陪她逛街呢……
另外,身子因为老是不运动,日益的发福了 囧rz~
  回复  引用  查看    
#5楼 2008-04-01 17:57 | 生鱼片      
支持下
  回复  引用  查看    
#6楼 2008-04-01 18:02 | jillzhang      
@杨正祎(阿一)
应该多注意身体了,我现在就肥胖
  回复  引用  查看    
#7楼 2008-04-01 18:08 | 狼Robot      
我还好瘦啊...55555555........
  回复  引用  查看    
#8楼 2008-04-01 18:39 | 阿不      
积累的很多。。。
  回复  引用  查看    
#9楼 2008-04-01 18:45 | StillWartersRunDeep      
支持一下
IE8出来了,不知道是否下向兼容
  回复  引用  查看    
#10楼 2008-04-01 20:04 | Q.Lee.lulu      
支持一下
我一回家老妈就说我在学校不吃,那么瘦,哈哈
  回复  引用  查看    
#11楼 2008-04-01 20:50 | Jeffrey Zhao      
@杨正祎(阿一)
我最近瘦了10斤,哈哈。
  回复  引用  查看    
#12楼 2008-04-01 21:58 | airwolf2026      
哇,又有新东西了...明天起来看.
  回复  引用  查看    
#13楼 [楼主]2008-04-01 22:50 | 杨正祎(阿一)      
--引用--------------------------------------------------
Jeffrey Zhao: 我最近瘦了10斤,哈哈。
--------------------------------------------------------
不是吧!我最近又胖了一些。怎么瘦下来的,教我呀。
  回复  引用  查看    
#14楼 2008-04-02 12:53 | scotoma      
楼主文章真的很好佩服
  回复  引用  查看    
#15楼 2008-04-02 17:28 | 天生俪姿      
囧rz~

请问楼主 这个代表什么意思哩。 是怎么打出来的。能告诉告诉吗?

还有你的那个Flash是怎么加进去的哩?

  回复  引用  查看    
#16楼 2008-04-02 21:05 | airwolf2026      
呵呵.现在才看完...楼主的更新频率刚好.上面打错字啦.囧
  回复  引用  查看    
#17楼 [楼主]2008-04-02 21:30 | 杨正祎(阿一)      
@天生俪姿
囧rz~ 代表一个跪着的人,一个哭脸的跪着的人。 后面还有个小尾巴。呵呵。。“囧”是一个汉字。我都是当作自定义短语存在输入法里面的。呵呵。。

flash 用了jquery的一个灯箱插件,你可以看一下网页源代码分析一下。
  回复  引用    
#18楼 2008-04-03 09:03 | kavin3 [未注册用户]
blog顶上的部分在firefox3下有些错位哦~
  回复  引用    
#19楼 2008-04-03 09:06 | kavin3 [未注册用户]
貌似#blogTitle需要一个width: 100%之类的定宽
  回复  引用  查看    
#20楼 [楼主]2008-04-03 09:40 | 杨正祎(阿一)      
@kavin3
的确,在IE8和FireFox3下都会这样。具体情况,我还没有研究,不过,这是FireFox3和IE8更向web标准靠近的一种讯息。
等FireFox3正式版出来的时候,我会修正这个问题。

  回复  引用    
#21楼 2008-04-05 00:44 | MarVell [未注册用户]
IE6的BUG总是那么诡异而且讨人厌- -!

----------------------------------------
为嘛我想胖就是胖不了...周围人都说我太瘦了...囧rz...
  回复  引用  查看    
#22楼 [楼主]2008-04-06 18:42 | 杨正祎(阿一)      
@MarVell
我以前也说胖不起来,但是有了女朋友以后就胖了起来。
  回复  引用    
#23楼 2008-04-13 03:55 | Yeni [未注册用户]
提醒博主哦~尽管微软声称他们已经搞定了Peek-a-boo bug, 但其实它在IE7中依然存在!
关于IE7产生Peek-a-boo bug的必要因素, 暂时还没有看到比较系统的报道. 而且, 对于新的bug, 原先的那个明确设置height/width的解决方案也失效了, 不过position:relative还仍然管用.
我已经在最近的开发中"艳遇"了IE7版本的Peek-a-boo了..
另外这里也给博主几个英文链接做参考~
Jeffrey公布的解决方案: http://www.zeldman.com/2006/10/27/ie7fixes1/
sixthings也有相关报道: http://www.brownbatterystudios.com/sixthings/2007/01/06/css-first-aid-for-ie-peekaboo-bug/
一个没头脑的解决方案: http://www.small-software-utilities.com/css/88/ie7-peekaboo-bug-disappearing-text/

希望这些对楼主和读者们有用~
  回复  引用  查看    
#24楼 [楼主]2008-04-14 10:58 | 杨正祎(阿一)      
@Yeni
谢谢yeni,我会继续关注这个问题。
  回复  引用    
#25楼 2008-04-16 10:50 | cssplay [未注册用户]
IE6 Peekaboo(躲躲猫) Bug的解决办法

http://www.cssplay.org.cn/css-hack/20080226/80.html
  回复  引用    
#26楼 2008-04-19 01:04 | Yeni [未注册用户]
不用客气 向博主致敬~
  回复  引用  查看    
#27楼 2008-04-27 16:43 | deerchao      
确实是在IE7里依然存在。
现场示例:
http://crxgas.cn/ProductInfo.aspx
先点“气体检测仪”,再点"固定式“,最后点一下下面的”应急监测“,页面左边的部分就不见了。
1680*1050,Vista SP1,IE7.
  回复  引用  查看    
#28楼 2008-06-27 15:37 | BAsil      
不错,顶一下
51count统计