清算块会影响错误的浮动

时间:2010-06-11 07:55:14

标签: css css-float clear

我有两栏布局

 <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,它将显示在左侧窗格的下方,比ul更高。我该怎么做才能获得主要内容的正确位置?

2 个答案:

答案 0 :(得分:1)

为中央窗格提供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;
    ...

}

现在他们应该在另一个旁边出现

答案 1 :(得分:0)

我找到了一个解决方案,但它不是“漂亮”。添加

<li style="float: none; visibility: hidden;">stub</li>

作为ul的最后一项有助于解决问题。