Вчера кто-то спросил Ширина, поглощающая элементы HTML . Я представил два решения : одно на основе таблицы и одно чистое CSS. Теперь чистый CSS хорошо работает в Firefox и Chrome, но не в IE.
В основном, поплавки спускаются к следующей строке. Насколько я понимаю (и поведение FF и Chrome), этого не должно быть, потому что левые элементы div являются элементами блочного уровня, которые поплавки должны игнорировать.
Полный пример кода приведен ниже. Добавление DOCTYPE для принудительного включения IE в совместимый со стандартами режим помогает немного, но проблема остается.
Итак, мой вопрос: я ошибаюсь в своем понимании чисел с плавающей точкой или это проблема IE?
Что более важно, как мне заставить это работать в IE? Это чертовски мучает меня.
<html>
<head>
<style type="text/css">
div div { height: 1.3em; }
#wrapper { width: 300px; overflow: hidden; }
div.text { float: right; white-space: nowrap; clear: both; background: white; padding-left: 12px; text-align: left; }
#row1, #row2, #row3, #row4, #row5, #row6 { width: 270px; margin-bottom: 4px; }
#row1 { background: red; }
#row2 { background: blue; }
#row3 { background: green; }
#row4 { background: yellow; }
#row5 { background: pink; }
#row6 { background: gray; }
</style>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("jquery", "1.3.2");
google.setOnLoadCallback(function() {
$(function() {
$("div.text").animate({ width: "90%" }, 2000);
});
});
</script>
</head>
<body>
<div id="wrapper">
<div class="text">FOO</div><div id="row1"></div>
<div class="text">BAR</div><div id="row2"></div>
<div class="text">THESE PRETZELS ARE</div><div id="row3"></div>
<div class="text">MAKING ME THIRSTY</div><div id="row4"></div>
<div class="text">BLAH</div><div id="row5"></div>
<div class="text">BLAH</div><div id="row6"></div>
</div>
</body>
</html>