У меня есть следующий класс CSS:
.hidden { visibility: hidden; position: absolute; }
У меня есть div с этим классом. Если я удаляю класс, div не показывается. Но во второй раз я "удаляю это", показывает div. Есть идеи почему? Смотрите отдельный пример использования YUI для этого:
http://avernet.googlepages.com/ie-visibility.html (код также доступен на Pastie )
Примечание: я не могу использовать display: none в моем случае (что в противном случае сработало бы).
display: none
Вы имеете в виду display: none вместо visibility: hidden?
visibility: hidden
Использование техники nudge для IE делает свое дело. Я добавил больше информации в эту вики: ищите заголовок Содержимое ячейки остается скрытым в IE .
А вот реализация для смещения , которое мы используем в коде Orbeon Forms:
/** * 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)); } }
Похоже, это связано с "position: absolute;". Если вы удалите эту строку, она работает, или если вы добавите
div { position:absolute; }
это тоже работает.