Je vois ce problème où si je bascule le innerHTML d'un élément flottant ou d'un élément imbriqué à l'intérieur d'un, il flotte à l'extérieur du conteneur une fois que je bascule retour d'une chaîne vide à n'importe quel texte ou balisage. Bizarrement, dans l'exemple ci-dessous, si je supprime la transformation textuelle du CSS en ligne, le problème disparaît.La définition de innerHTML entre la chaîne vide et la chaîne complète dans WebKit sur les éléments flottants provoque un débordement
Cela se produit dans Chrome 9.0.597.19 et Safari 5.0.3 (WebKit version 6533.19.4) dans OS X 10.6.5.
Des idées s'il s'agit d'un bug WebKit ou autre chose?
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Safari Float Bug</title>
<style type="text/css">
.titlebar {
background: #eee;
width: 400px;
padding: 10px;
text-transform: uppercase; /* If you remove this line, the right side link no longer floats outside the container. */
}
</style>
</head>
<body>
<p>
<a href="#" id="clicked">Clicker</a>
</p>
<div class="titlebar">
<span style="float: left;">Title</span>
<a href="#" id="rightlink" style="float: right;">Right Side Link</a>
<br style="clear: both;" />
</div>
<script type="text/javascript">
function toggler() {
var rightlink = document.getElementById("rightlink");
if (rightlink.innerHTML == "") {
rightlink.innerHTML = "Right Side Link";
}
else {
rightlink.innerHTML = "";
}
}
document.getElementById("clicked").addEventListener("click", toggler, false);
</script>
</body>
</html>
Eh bien, les détails mineurs, mais la valeur "en majuscules" se réfère au cas de la phrase. Mais même si je mets "majuscule" ou "minuscule", cela ne fait pas de différence. Il y a probablement assez de place car cela se comporte très bien dans d'autres navigateurs comme Firefox. – chimerical