Я вижу эту проблему, когда если я переключаю innerHTML плавающего элемента или элемента, вложенного в него, он всплывает за пределы контейнера, как только я переключаюсь обратно с пустой строки на любой текст или разметку. Как ни странно, в приведенном ниже примере, если я удалю text-transform из встроенного CSS, проблема исчезнет.
Это происходит в Chrome 9.0.597.19 и Safari 5.0.3 (сборка WebKit 6533.19.4) в OS X 10.6.5.
Есть идеи, является ли это ошибкой WebKit или чем-то еще?
<!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>