Mi chiedevo se c'è qualcuno che ha un'idea di come affrontare con il seguente problema in IE7:IE7 relativa/bug posizionamento assoluto con il contenuto della pagina modificata dinamicamente
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>IE7 absolute positioning bug</title>
<style type="text/css">
#panel { position: relative; border: solid 1px black; }
#spacer { height: 100px; }
#footer { position: absolute; bottom: 0px; }
</style>
<script type="text/javascript">
function toggle() {
var spacer = document.getElementById("spacer");
var style = "block";
if (spacer.style.display == "block" || spacer.style.display == "") {
style = "none";
}
spacer.style.display = style;
}
</script>
</head>
<body>
<div id="panel">
<button onclick="toggle();">Click me</button>
<br /><br /><br />
<div id="spacer"></div>
<div id="footer">This is some footer</div>
</div>
</body>
</html>
Quando si esegue questo in IE7 vedrete che l'elemento "footer" rimane dopo aver modificato il CSS per "pannello". Lo stesso esempio testato in IE8, FF e Chrome si comporta esattamente come previsto.
Ho già provato ad aggiornare la classe dell'elemento ma questo non funziona se la finestra del browser è stata aperta al massimo e non sono state apportate ulteriori modifiche alle dimensioni della finestra (che rappresenta circa il 90% dei casi di utilizzo che abbiamo per il nostro prodotto .... :() Sono bloccato con una soluzione basata su CSS, tuttavia penso di poter fare un'eccezione in questo caso se può essere facilmente reso specifico per IE7 (il che significa che altri browser si comporteranno in un modo standard con questo).
Aiutateci!
Hai provato DOCTYPE per HTML o XHTML rigoroso-rigida di commutazione? Cosa succede allora? – NotMe
In effetti non l'ho fatto.Il problema è che non ho il controllo su quale doctype viene inviato al client (per ragioni che non posso discutere qui) quindi non sarebbe la soluzione anche se avesse funzionato ... –
2 anni dopo e questo la domanda (e la risposta) sono ancora incredibilmente utili! Mi sto sfondando la testa per un po '. Non riuscivo nemmeno a capire come formulare correttamente la domanda ... Grazie! –