该Bug影响版本 IE6
症状
一些内容在页面滚动或浏览器窗口最大化最小化的时候消失或重现
说明
常见CSS初学者用clearer元素去清除一个元素的浮动。在IE,包含浮动元素的元素必须拥有“layout”。如果没有,你将会遇到一个内容消失的bug (aka Peek-a-boo bug)或是“Leaking Background Bug”。哪个bug你会遇到取决于当页面被渲染的时候,清除元素是否接触到浮动元素,或是内部有一些内容的容器在一个清除元素的后面或是里面。另外,你可以设置height:0;在浮动元素上,将会让它拥有“layout”导致内容消失bug产生。无论在哪种情况下,如果容器没有“layout”,将会出现这个bug。
Demo 由于bug的特性,demo在独立的页面演示。下面演示产生bug的典型代码。
HTML Code:
代码如下 | 复制代码 |
This text will be disappearing I am more important than the text! |
CSS Code:
代码如下 | 复制代码 |
#container { background: #abc; } |
上面的代码有所有触发bug的要素。当代码在IE6渲染时,当窗口滚动或是窗口变化,#disappearing里面的文字会消失或重现。 如果#container没有设置任何背景,内容消失bug不会被触发。#helper是额外增加的一个元素。它可以是普通的文字,也可以是空格,也可以包含在清除元素里面。没有它#container的背景会被泄露,有了它#disappearing将会出现闪动。
解决方案
这个问题产生于你没有用正确的方法清楚浮动元素。清除元素不是在必要的情况下,不要使用它们。相反,使用其他方法,在IE中包含浮动的元素需要拥有“layout”。 即使你使用清除元素去清除浮动,IE还是需要在容器上设置“layout”。下面是把解决方法应用于原来的demo: 由于bug的特性,demo在独立页面演示。
HTML Code:
代码如下 | 复制代码 |
This text will be disappearing I am more important than the text! |
CSS Code:
代码如下 | 复制代码 |
#container { background: #abc; } |
HTML和CSS代码和原来的demo相同,即使你知道不应该使用清除元素。我们用条件注析让#content拥有布局,在IE是一个正确的清除浮动的方法,是防止内容消失bug出现所必须的。阅读hasLayout tutorial 你将会找到更好的方法。
茶杯头甜蜜终章dlc 官方手机版v1.0.0.3
下载火柴人传说暗影格斗内置菜单 最新版v3.0.1
下载荒野乱斗测试服 安卓版v61.10.3
下载荒野乱斗彩虹服 安卓版v61.10.3
下载寒霜启示录 安卓版v1.25.10
寒霜启示录是一款生存模拟游戏,不少玩家可能对于末日都有着自己
末日城堡免广告版 安卓最新版v0.7.1
末日城堡免广告版是一款非常好玩的模拟经营类游戏,内部可以不看
甜蜜人生模拟器 最新版v1.4.5
甜蜜人生模拟器是一款非常好玩的模拟恋爱手游,玩家在这里能够对
武器锻造师内置功能菜单 v10.4
武器锻造师内置菜单版是游戏的破解版本,在该版本中为玩家提供了
开放空间overfield 安卓版v1.0.5
开放空间Overfield是一款箱庭养成经营手游,让你在广阔