2009-10-13 3 views
1

После почти четырех лет использования один из моих тестеров заметил что-то странное с моими панелями обновлений.Высота обновляемой панели остается наибольшей по размеру после обновления

Предположим, у меня есть режим отображения, и он занимает 100 пикселей в высоту. Затем пользователь переключается в режим редактирования и обновления обновления. Окно теперь имеет высоту 500 пикселей. Пользователь нажимает кнопку «Сохранить» и возвращается в режим отображения, который составляет всего 100 пикселей.

Теперь dom занимает всего 100 пикселей, но все еще есть полоса прокрутки до 500 пикселей. Если пользователь сжимает экран до 100 пикселей, он все равно будет видеть полосу прокрутки, несмотря на то, что там ничего нет.

Что, черт возьми, вызывает это и как его исправить? Это похоже на то, что панель обновления не сообщает окну, что она больше не нуждается в такой высоте.

ответ

2

Звучит для меня как ваш контроль, возможно, используя видимость = "visible | hidden" вместо отображения: "none | block".

Используйте IE Dev Toolbar или Firebug, чтобы увидеть, что представляет собой структура DOM во время состояния вашей страницы.

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

Свойство определяет видимость , является ли данный элемент видимым или нет (видимость = «видимый | скрытый»). Однако, когда видимость установлена ​​на , элемент скрыт до сих пор занимает то же место в макете страницы.

CSS Properties: Display vs. Visibility

+0

Это было довольно много его. У нас есть div, который установлен во время обновлений. Это непрозрачный div (абсолютный pos, z-order high), который берет всю страницу и захватывает клики, чтобы люди не могли ничего делать во время pageload. Кто-то установил высоту div в высоту window.scrollwidth, поэтому он занимает всю страницу через javascript. Этот жесткий номер не изменяется. Я взял его на 100% вместо этого, который работает отлично. – diadem

+0

О, и, как вы сказали, они установили видимость скрытыми вместо них, несмотря на то, что у нее не было причин существовать. Было просто сложно отследить, потому что элемент dom был изменен программно в файле js. – diadem