J'ai un formulaire avec quelques champs. Un fieldset possède une table de préférences de temps définie par l'utilisateur. L'utilisateur peut ajouter et supprimer des préférences de temps. Lorsqu'ils ajoutent une ligne, une ligne de table est insérée dynamiquement dans le DOM en utilisant un jQuery append()
.Les éléments positionnés relativement ne bougent pas lorsque le DOM est mis à jour (IE6 et IE7)
Le problème est que dans IE6 et IE7 tous les éléments relativement positionnés sur la page ne "bump" vers le bas lorsque les nouvelles lignes de la table sont ajoutées. De plus, ils ne bougent pas lorsque les lignes de tables sont supprimées. Ils sont en quelque sorte juste coincés dans leurs taches.
Cela serait relativement mineur, mais chaque ensemble de champs est relativement positionné afin d'éviter le problème de débordement d'arrière-plan IE avec les jeux de champs. Par conséquent, la forme aime assez mal après avoir ajouté deux ou plusieurs lignes à la table.
Voici le CSS étant appliqué aux fieldsets:
form.pancake fieldset {
position: relative;
margin-top: 1.5em;
padding-top: 1.5em;
}
form.pancake fieldset legend {
position: absolute;
top: -0.5em;
left: 0.5em;
}
Lorsque le position: relative
est retiré de la feuille de style, les lignes ajoutées dynamiquement fonctionnent parfaitement et le contenu se déplace vers le bas, selon le cas.
Toute aide est très appréciée.
Vous pouvez obtenir IE à repeindre en définissant simplement la propriété className: "obj.className = obj.classname". La question importante est alors de trouver quel élément forcer à repeindre; il devrait de préférence être le contenant immédiat des éléments se conduisant mal, pour éviter de trop charger le navigateur. – NickFitz
Oups, mis-capitalisation de "className" sur le côté droit de mon commentaire précédent (pourquoi ne pouvons-nous pas éditer les commentaires?) – NickFitz
Merci beaucoup! – Ethan