переполнение: авто в IE7 оставляет место для полосы прокрутки при изменении размера - PullRequest
2 голосов
/ 09 июля 2010

Поскольку клиент запросил его, я изменил div на

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

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

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

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

Ответы [ 2 ]

1 голос
/ 26 апреля 2011

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

0 голосов
/ 02 июля 2012

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

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

...