2008-09-30 7 views
5

J'ai cette grande sorte de page de saisie de données, une sorte de table de mise en page en utilisant divs. Chaque rangée a des sous-répertoires qui peuvent être ouverts/fermés. Le basculement est déclenché à l'aide des paramètres de visibilité css. Chaque "cellule" de la table a une petite image dans son coin, vous cliquez sur l'image, et une fenêtre contextuelle s'ouvre qui vous permet de mettre des notes sur l'entrée.Textarea dans IE7 disparaît à la souris sur

Cette fenêtre contextuelle a une zone de texte et un ensemble de cases à cocher, avec un bouton (type d'entrée = soumettre, je pense). La popup est un iframe imbriqué dans un div caché. Dans IE7, une fois que vous avez ouvert cette note iframe et fait défiler la page vers le bas, la souris sur la zone de texte du popup le fait disparaître et affiche le contenu de la page en dessous. Les cases à cocher montrent également la page ci-dessous lorsque vous passez la souris. J'ai donc essayé quelques correctifs différents. Z-index était ce que j'espérais pourrait être utilisé pour résoudre ce problème. pas de chance. Je pourrais essayer de remplacer la zone de texte avec un type d'entrée simple = texte mais puisque les cases à cocher montrent également ce bogue, je soupçonne que l'entrée de texte d'une ligne causera également le bogue.

Répondre

6

en plus de bloquer les éléments z-index fonctionne pour tous les éléments qui ont ce que appelle IE hasLayout read more

+0

merci pour cette astuce. Ce lien vers haslayout.net est vraiment utile. Je n'ai toujours pas été capable de résoudre ce problème, mais c'est probablement parce que la page sur laquelle je travaille est si complexe et remplie d'ordures. cette info va aider beaucoup. – the0ther

2

Si je me souviens bien des travaux de Z-Index sur les éléments de blocs qui sont absolument positionnés. Essayez donc de définir la position de la boîte popup sur absolute, puis essayez l'index z. Si vous avez besoin que la fenêtre contextuelle soit dans une certaine position, définissez l'élément d'enveloppe sur la position relative. J'ai déjà rencontré ce problème et je crois que je l'ai résolu comme je l'ai décrit.

9

Le est d'ajouter zoom: 1 façon la plus simple pour déclencher hasLayout (mentionné dans un autre post).

Lors du débogage quelques-uns des plus stupides IE 6/7 des problèmes d'affichage, je vais parfois jeter juste un

* { 
    zoom: 1; 
} 

temporaire à mon CSS et voir si quelque chose change. Si tel est le je commence à ajouter de manière sélective à des éléments en commençant par l'élément, le parent de l'élément/enfants, etc.

zoom est pris en charge que par IE, il est donc assez « sûr » d'avoir dans votre document. Cela m'a également évité d'avoir à faire quelque chose de fou comme des éléments de positionnement absolu, etc.

1

J'ai rencontré exactement le même problème avec les champs de saisie et les zones de texte dans IE7, mais seulement si je leur ai donné une largeur. Je ne me souviens pas d'où je l'ai eu, mais j'ai trouvé cette solution, elle n'est peut-être pas très élégante, mais elle a résolu le problème. Ajoutez simplement:

filter:alpha(opacity=100) 

à l'attribut css of style des champs gênants.

Questions connexes