Попробуйте структурировать ваш HTML следующим образом:
<div class="col col-left">
.....
.....
</div>
<div class="col col-middle">
.....
.....
</div>
<div class="col col-right">
.....
.....
</div>
<div class="clear"></div>
С помощью css:
.col-left {
margin-left: 10px;
}
.col-left, .col-right {
width: 186px;
}
.col-right {
margin-right: 10px;
}
.col-middle {
margin-left: 7px;
width: 559px;
}
.col {
float: left;
}
.clear {
clear: both;
}
Плавание всегда было сложно в IE7. Просто указав все столбцы, которые вы хотите разместить в одной строке float: left
, вы сможете держать их в том же порядке в разметке. Кроме того, добавление пустого div с классом clear останавливает распространение правила float на другие непреднамеренные элементы (что, вероятно, является причиной проблемы, которую вы видите).
Так что, как правило, всегда добавляйте пустой div с символом clear: оба как последний элемент из всех всплывающих элементов. Кроме того, попробуйте придерживаться плавающего в одном направлении. Смешивание с плавающей точкой: левые / права как братья и сестры могут вызвать странный / противоречивый рендеринг в разных браузерах.