Сделайте один div видимым, а другой невидимым

У меня есть два тега div, один для поиска, а другой - для результатов. Мне нужно, чтобы при нажатии кнопки отправки результаты возвращаются и помещаются в div результатов (с iframe), а div поиска должен становиться скрытым, а div результатов должен быть видимым.

div для поиска изначально установлен как видимый (с использованием видимости для видимого), а div результатов изначально установлен как скрытый (с использованием видимости для скрытого).

Кроме того, изначально есть огромное белое пространство внизу страницы, где находится скрытый div, так как мне убедиться, что внизу тоже нет лишнего белого пространства.


person mattgcon    schedule 03.11.2010    source источник


Ответы (4)


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

person My Other Me    schedule 03.11.2010
comment
Поправьте меня, если я ошибаюсь, но с iFrame вы ДОЛЖНЫ сделать его видимым и отображаемым, иначе некоторые браузеры не будут загружать контент по соображениям безопасности. Однако вы можете сделать его 1x1px и непрозрачностью 0,01%. Однажды я столкнулся с этой проблемой с виджетом межсайтовой загрузки. - person coolaj86; 03.11.2010

Вы можете использовать свойство display стиля. Сначала установите стиль раздела результатов как

style = "display:none"

Тогда div не будет виден и не будет пробелов.

После того, как результаты поиска будут заполнены, измените свойство отображения с помощью сценария Java, например

document.getElementById("someObj").style.display = "block"

Используя java-скрипт, вы можете сделать div невидимым

document.getElementById("someObj").style.display = "none"
person Sujith    schedule 03.11.2010

Я не думаю, что вам действительно нужен iframe, не так ли?

Если вы не делаете что-то странное, вы должны получать свои результаты в формате JSON или (в худшем случае) XML, верно?

Если у вас проблема с белым ящиком / дополнительным пространством, попробуйте

style="display: none;"

вместо того

style="visibility: hidden;"
person coolaj86    schedule 03.11.2010
comment
да, на самом деле, я не ХОЧУ один, но он требуется клиенту - person mattgcon; 03.11.2010

Если вы хотите использовать display = block, это заставит читателя контента прыгать, поэтому вместо использования display вы можете установить для левого атрибута отрицательное значение, которое не существует на вашей html-странице для отображения, но на самом деле это так.

Я надеюсь, что вы понимаете мою точку зрения, если я не могу заставить вас понять, вы можете отправить мне ответ.

person Prateek    schedule 03.11.2010