Показывать и скрывать div в Internet Explorer, почему я не могу использовать абсолютные и относительные? - PullRequest
0 голосов
/ 27 октября 2010

Я часто использую 's на страницах моего сайта, чтобы хранить дополнительную' учебную 'информацию для конкретной страницы.Пользователь может нажать кнопку, например «Показать инструкции», и затем на странице отобразится значок.

Когда страница загружена, у меня видимость установлена ​​на «скрытый».Затем пользователь нажимает кнопку «Показать инструкции», чтобы показать.

Скрыто, позиция «абсолютная».Когда я показываю, позиция устанавливается как «относительная», чтобы она не перекрывала содержимое страницы.Таким образом, контент «перемещается» вниз, чтобы освободить место для него.

Но вот проблема - Internet Explorer ведет себя не так, как Firefox и Chrome.Последний покажет и скроет как надо.Они принимают изменение положения с абсолютного на относительное.Но IE не покажет его когда-то скрытым.

Почему IE ведет себя так?Ну, мне потребовалось очень много времени (несколько дней), чтобы понять это - я не мог понять, почему это будет работать в двух других браузерах - это общеизвестно ??

Ответ, который я нашел, заключается в том, что в IE вы не можете изменить позицию с «относительной» на «абсолютную» и наоборот, когда вы показываете / скрываете ее.Пока позиция удерживается на «относительном» и «относительном» или «абсолютном» и «абсолютном», это работает, но это не то, чего я хочу.

Единственное предложение, которое мне дали, - это использоватьJQuery.Я посмотрел на это.Мне нравится, что он совместим практически со всеми браузерами.

Но кроме использования jQuery, есть другое решение ??

Ответы [ 2 ]

0 голосов
/ 28 октября 2010

[Я только что создал учетную запись на этом сайте ... поэтому я должен ответить как «Ответ», иначе я бы ответил как «Комментарий»]

Мой вопрос был болееотношение к тому факту, что положение элемента div не может быть успешно изменено и отображено, когда его изначально установлено в «absolute» или «родственник».Другими словами, если он скрыт с позицией 'absolute', в IE он не отображает содержимое div, когда позиция изменяется, чтобы показать с 'относительным'.Позиция должна быть «абсолютной» или «относительной» или «относительной».Эта проблема не является проблемой в Firefox или Chrome - только Internet Explorer.

0 голосов
/ 27 октября 2010

Конечно, вы можете использовать display: none вместо visibility: hidden.Скрытая видимость по-прежнему резервирует слот на странице, где он обычно отображается;ни один из них полностью не выводит его из макета.

...