je le balisage suivant:Comment IE peut-il repositionner correctement un élément après le redimensionnement vertical d'un frère?
<nav id='tab_links'>
<a href='#view1'>One</a>
<a href='#view2'>Two</a>
</nav>
<div id='container'>
<div id='view1'>Short Content</div>
<div id='view2'>Much longer content</div>
</div>
<footer>
<input type='submit' />
</footer>
et les styles suivants:
#view2 { display: none; }
#footer { display: block; clear: both; text-align: right; }
#footer * { display: inline-block; text-align: center; }
J'utilise le jQuery ci-dessous pour échanger les vues:
$('#tab_links a').click(function() {
var tabToShow = $($(this).attr('href'));
var otherTabs = tabToShow.siblings();
tabToShow.show();
otherTabs.hide();
});
Quand j'intervertir la view1
contenu pour le contenu view2
, le pied de page reste où il était, planant au-dessus du milieu du nouveau contenu. Si je passe la souris au-dessus du contenu du pied de page, il saute en place. Si je ramène ensuite le contenu à view1
, le pied de page reste là où il était pour view2
, ce qui est loin en dessous de la fin du container
.
Quels styles puis-je appliquer pour que IE positionne correctement le pied de page? J'ai essayé tous les éléments suivants, dans diverses combinaisons:
- appliquent
clearfix
à#container
- appliquer
clearfix
-#footer
- appliquer
height: auto
à#container
- appliquer
height: 30px
-#footer input
- appliquer à
widgth: 100px
#footer input
J'ai aussi essayé d'ajouter ''
dans le '# container'. Cela ne permet pas non plus d'abaisser le pied de page lorsque le contenu se développe (ou de l'afficher lorsqu'il se contracte). Cela m'amène à penser que cela ne peut pas être un problème de flottement. –J'ai également essayé d'enchaîner les événements hide/show qui basculent les vues. '$ ('# view1'). hide (0, function() {$ ('# view2'). show();});' se comporte comme $ ('# view1'). hide(); $ ('# view2'). show(); ' –
Ce problème semble être * très * étroitement lié: https://forum.jquery.com/topic/force-ie-redraw (hélas, il n'est pas résolu) –