CSS:删除可见性为:hidden/position:absolute的类在IE6/7中不会取消隐藏

CSS:删除可见性为:hidden/position:absolute的类在IE6/7中不会取消隐藏,css,internet-explorer,Css,Internet Explorer,我有以下CSS类: .hidden { visibility: hidden; position: absolute; } 我有那个班的学生。如果我删除这个类,div就不会显示。但当我第二次“移除它”时,div显示。知道为什么吗?请参见使用YUI的独立示例: (代码也可在上获得) 注意:在我的情况下,我不能使用display:none。它似乎与“position:absolute;”有关。如果删除该行,或者添加 div { position:absolute; } 它也可以工

我有以下CSS类:

.hidden {
    visibility: hidden;
    position: absolute;
}
我有那个班的学生。如果我删除这个类,div就不会显示。但当我第二次“移除它”时,div显示。知道为什么吗?请参见使用YUI的独立示例:

(代码也可在上获得)


注意:在我的情况下,我不能使用
display:none

它似乎与“position:absolute;”有关。如果删除该行,或者添加

div { position:absolute; }

它也可以工作。

你的意思是
显示:无
而不是
可见性:隐藏

使用IE的微移技术就可以了。我在这个wiki上添加了更多信息:查找标题

下面是我们在Orbeon表单代码中使用的轻推的实现:

/**
 * Nudge element after a short delay for IE6/7 to force IE to "do the right thing".
 */
nudgeAferDelay: function(element) {
    if (YAHOO.env.ua.ie != 0 && YAHOO.env.ua.ie <= 7) {
        window.setTimeout(function() {
            element.className = element.className;
        }, ORBEON.util.Utils.getProperty(INTERNAL_SHORT_DELAY_PROPERTY));
    }
}
/**
*在IE6/7短暂延迟后轻推元素,以迫使IE“做正确的事情”。
*/
nudgeAferDelay:函数(元素){

如果(YAHOO.env.ua.ie!=0&&YAHOO.env.ua.ie不,在这种情况下我需要使用可见性:隐藏。它不起作用。因此问题就出现了。当您使用position:absolute时,您将div从文档流中移除,因此在我看来,display:none和visibility:hidden之间没有区别。David:是的,它在没有position:absolute的情况下工作,但是如果不将位置设置为:绝对,则隐藏的内容仍会占用页面空间,这不是我想要的。为什么不能使用“显示:无”;那么?使用“可见性:隐藏”的唯一原因是保留页面空间。@David,一些“小部件”如果使用display:none隐藏该div,则无法正确初始化该div。相反,使用visibility:hidden并确保该div在屏幕外呈现可以解决该问题。例如,请参见YUI人员在此处的说明:(在该页面上,搜索“不推荐”)。