Было бы неплохо иметь инструмент, который мог бы точно сказать вам, в чем заключаются все ваши проблемы с макетом, но в этом случае браузер отображал страницу именно так, как она должна быть - общая ширина поплавков превышала ширину содержащий блок, так что последний переходит на новую строку (это немного отличается от проблемы с раскрывающимся блоком / плавающей точкой IE6, которая обычно вызывается содержимым внутри float, а не самими float). Так что в этом случае с вашей страницей все было в порядке.
Отладка - это просто вопрос прохождения вашего HTML в Firebug и выяснения, какие дочерние элементы блока превышают его ширину. Firebug предоставляет много информации для этой цели, хотя иногда мне нужно использовать калькулятор. Я думаю, что то, что вы описали в отношении способности видеть, какие элементы ограничивают другие элементы, будет просто слишком сложным и подавляющим, особенно для элементов, которые удалены из нормального потока (таких как плавающие или позиционированные элементы).
Кроме того, более глубокое понимание того, как CSS-макет также очень помогает. Это может быть довольно сложно.
Например, обычно рекомендуется назначать явные значения ширины плавающим элементам - спецификация W3C CSS2 гласит, что числа с плавающей точкой должны иметь явную ширину и не содержит инструкций о том, что делать без нее. Я думаю, что большинство современных браузеров используют метод «сжать, чтобы соответствовать», и ограничатся шириной содержимого. Однако это не гарантируется в старых браузерах, и в чем-то вроде 3-колоночной разметки вы будете зависеть от ширины содержимого внутри плавающих элементов.
Кроме того, если вы стремитесь к совместимости с IE6, существует ряд связанных с плавающей точкой ошибок , которые также могут вызывать аналогичные проблемы.