Очистка блока влияет на неправильное плавание
У меня есть две колонки
<div class="left-pane">
Left pane
</div>
<div class="central-pane">
<div>
<ul class="customers-types-tabs">
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
</ul>
</div>
<div>Main content</div>
</div>
и таблица стилей:
.left-pane {
width: 248px;
float: left;
background-color: #f6f6f6;
border: 1px solid #e6e6e6;
padding: 20px 5px;
}
.central-pane {
margin-left: 270px;
}
.customers-types-tabs li {
background-color: #f6f6f6;
border: 1px solid #d5d5d5;
line-height: 38px;
padding: 0 20px;
float: left;
margin-right: 10px;
position: relative;
top: 1px;
}
Проблема в том, что я хочу, чтобы "Основное содержимое" отображалось прямо под div с ul внутри него (которое представляет собой элемент управления вкладками), но если я установил для стиля div основного содержимого значение clear: both, оно появится под левой панелью, которая выше чем ул. Что я должен сделать, чтобы получить правильную позицию основного контента?
2 ответа
Дать центральной панели также float: left
и следующий элемент после этой конструкции вы даете float:none;
и если вы хотите быть уверенным, что это работает при любом размере окна браузера, поместите div вокруг всего этого с шириной, чтобы внутренние объекты вписывались в него по ширине. знаешь что я имею ввиду?#
<div id="wrapper">
<div class="left-pane">
Left pane
</div>
<div class="central-pane">
<div>
<ul class="customers-types-tabs">
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
</ul>
</div>
<div id="main">Main content</div>
</div>
</div>
<div style="flaot:none;"></div>
и таблица стилей:
#wrapper{
position: relative;
width: 548px;
}
.left-pane {
width: 248px;
float: left;
...
}
.central-pane {
float: left;
width: 200px;
}
#main{
width: 100px;
float: left;
...
}
теперь они должны появляться рядом друг с другом
До тех пор, пока я не нашел одно решение, но оно не "красивое". Добавление
<li style="float: none; visibility: hidden;">stub</li>
как последний пункт к ул помогает решить проблему.