2010-07-09 10 views
2

Comme un client l'a demandé, je l'ai changé divoverflow: auto dans IE7 laisse place à la barre de défilement lors du redimensionnement

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

qui fonctionne essentiellement bien dans tous les navigateurs pris en charge (IE7, IE8, Firefox 3 +): Cela permet à la div de remplir la zone disponible verticalement et d'afficher une barre de défilement verticale si elle ne correspond pas. Notez que sans la largeur minimale de 945px, la barre de défilement recouvrirait une partie du contenu, puisque le contenu n'est pas redimensionné correctement lorsque la barre de défilement est ajoutée dans toutes les versions d'Internet Explorer. Avec la largeur minimale, il arrive à s'adapter, et les autres navigateurs ne s'en soucient pas.

Cependant, IE7, si une barre de défilement verticale est affichée et la fenêtre du navigateur est prolongée verticalement de sorte que la barre de défilement n'est plus nécessaire, IE7 supprime la barre de défilement, mais laisse un rectangle blanc où la barre de défilement était, à savoir le contenu div n'est pas étendu à la zone de la barre de défilement précédente. Lorsque vous rechargez la page dans la même fenêtre, ça va. IE8 ne montre pas ce problème en mode standard.

Comment puis-je résoudre ce problème?

+0

@Qui pense qu'il s'agit d'un doublon - où est la question d'origine? – OregonGhost

Répondre

1

il me semble qu'il y a un bug dans IE7 ou votre IE7 spécifiquement. quant à votre code, c'est bien, même si c'est un peu bizarre, voulez-vous que le div défile horizontalement?

0

Ceci est toujours un problème observé dans IE7 et ci-dessous (et bien sûr, IE8 Compatibility View et les modes connexes). Après des recherches, je pense que c'est un oubli. Dans IE7 et ci-dessous, overflow: auto affiche toujours les barres de défilement, les désactivant si elles ne sont pas nécessaires (pour les éléments qui ont "habituellement" des barres de défilement). Il semble que ce comportement entraîne un débordement: les éléments auto ne recalculent pas leur largeur après la disparition des barres de défilement (car elles n'ont jamais été destinées à disparaître).