2010-07-09 1 views
2

Поскольку клиент просил его, я изменил дела допереполнение: авто в IE7 оставляет место для скроллинга при изменении размера

position: absolute; 
top: 5px; 
bottom: 5px; 
overflow: auto; 
min-width: 945px; 

, который в основном работает отлично во всех поддерживаемых браузерах (IE7, IE8, Firefox 3 +): Это делает div заполнением доступной области по вертикали и показывает вертикальную полосу прокрутки, если она не подходит. Обратите внимание, что без минимальной ширины 945px полоса прокрутки будет перекрывать часть содержимого, так как контент не будет изменен правильно, если полоса прокрутки будет добавлена ​​во все версии Internet Explorer. С минимальной шириной она подходит, и другим браузерам все равно.

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

Как я могу это решить?

+0

@ Кто-нибудь думает, что это дубликат - где исходный вопрос? – OregonGhost

ответ

1

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

0

Это все еще наблюдаемая проблема в IE7 и ниже (и, конечно же, представление совместимости IE8 и связанные режимы).

После исследования я считаю, что это недосмотр. В IE7 и ниже переполнение: auto всегда показывал полосы прокрутки, отключая их, если они не нужны (для элементов, которые «обычно» имеют полосы прокрутки). Похоже, что это поведение приводит к переполнению: автоматические элементы не пересчитывают свою ширину после исчезновения полос прокрутки (поскольку они никогда не собирались исчезать).