Я только что закончил прохождение google css: http://code.google.com/intl/de-DE/edu/submissions/html-css-javascript/
После экспериментов с файлами примеров (file: css-walkthrough.html) я обнаружил странное поведение, которое я не смог объяснить.
У меня есть три div в контейнере div:
<div id="wd-c">
<div id="wd-1"><span>1</span></div>
<div id="wd-2"><span>2</span></div>
<div id="wd-3"><span>3</span></div>
</div>
У нас есть следующий css, который рендерится, как и ожидалось: все 3 div взяты «из потока» и отображеныв одну строку.Пределы содержимого находятся внутри div.
#wd-c div {
height: 150px;
border: 1px solid #222;
font-size: 150%;
font-weight: bold;
opacity: .7;
}
#wd-c div { width: 150px; }
#wd-c #wd-1 { width: 50px; } /*for clarity*/
#wd-1 { float: left }
#wd-2 { float: left }
#wd-3 { float: left }
Однако, когда я раскомментирую:
/*#wd-3 { float: left }*/
div # wd-1 и # wd-2 по-прежнему отображаются вне потока', # wd-3 отображается как блочный элемент, перекрывая другие 2.
Странно то, что диапазон содержимого с символом 3 отображается ниже всех элементов div и больше не находится внутри # wd-3.
Похоже, что содержимое # wd-3 зависит от плавающих элементов div, что, очевидно, неправильно.Например, когда я изменяю ширину # wd-3 на
#wd-c #wd-3 { width: 220px; }
, персонаж рендерится внутри div, рядом с перекрывающимся плавающим div # wd-2 .. у вас есть какое-либо объяснение?