Добрый вечер! Нашел решение для двухколоночного макета, в котором используются плавающие элементы с отрицательными отступами. Пример работает, но я не могу понять, почему. css: #content{ float: right; margin-left: -200px; width: 100%; } #content-inner{ margin-left: 200px; } #left-sidebar{ width:200px; } html: <div id="content"> <div id="content-inner"> <p>content</p> </div> </div> <div id="left-sidebar"> <p>sidebar</p> </div> C чисто обывательской точки зрения, отрицательный маргин должен сдвинуть блок контента с текущей позиции на 200 пикселей влево, однако вместо этого блок остается на месте и его обтекает идущий за ним сайдбар, о котором, контент, по идее, ничего не знает. Как это работает? Понятно, что общая ширина увеличивается на 200 пикселей из-за вычитания отрицательного значения, но откуда берется обтекание? Согласно спецификации, зафлоаченный вправо блок сдвигается вправо, пока не пристыкуется к границе следующего блочного элемента или другого зафлоаченного блока. Почему в этом случае он ведет себя по-другому? Буду благодарен за разъяснения.