两列布局:列问题

时间:2013-02-10 15:14:34

标签: html css

我基于此创建了一个简单的两列布局: How to control overflow of table cell in Firefox?

左列应该是可滚动的(自上而下),右列应该是固定的。

HTML:

<div id="col1">
    <div id="list">
        <div class="row">Test 1</div>
        <div class="row">Test 2</div>
        <div class="row">Test 3</div>
        <div class="row">... more rows</div>
    </div>
</div><div id="col2"></div>

CSS:

html, body {
    margin: 0;
    padding: 0;
    height: 100%;
    width: 100%;
    background-color: #0c0;
}
#col1 {
    width: 25%;
    height: 100%;
    display:inline-block;
    background-color: #c00;
}
#col1>#list {
    width: 100%;
    overflow: auto;
}
#col1>#list>.row {
    padding: 5px;
    border-bottom: 1px solid #ccc;
}
#col2 {
    width: 75%;
    height: 100%;
    display:inline-block;
    background-color: #00c;
}

请看这个演示: http://jsfiddle.net/bitas/qRtjN/

Firefox 18.0.2几乎按预期显示了它。在其他浏览器中,左列不是从页面顶部开始,而是在左下角。

如果删除“div#list”,它会按预期工作。这个div有什么问题?我怎么能解决它?

2 个答案:

答案 0 :(得分:2)

我已经修改过你的CSS了,它确实有效。这是:

html, body {
    margin: 0;
    padding: 0;
    height: 100%;
    width: 100%;
    background-color: #0c0;
}
#col1 {
    width: 25%;
    height: 1000px;
    display:inline-block;
    background-color: #c00;
}
#col1>#list {
    width: 100%;
    height: 100%;
    overflow: auto;
}
#col1>#list>.row {
    padding: 5px;
    border-bottom: 1px solid #ccc;
}
#col2 {
    width: 75%;
    height: 100px;
    display:inline-block;
    background-color: #00c;
    position:fixed;
    top:0;
    right:0;
}

答案 1 :(得分:0)

添加此CSS将更正列的对齐方式:

#col1, #col2 {
    vertical-align: text-top;
}

http://jsfiddle.net/qRtjN/13/