我无法弄清楚为什么将display:table-row应用于#header div时,正确计算#container div的高度为200px,而将display:table-caption应用于#header时,它的尺寸太大div。

我已经在Chrome 35中测试过

有人知道为什么会这样吗?和/或有没有简单的解决方法?
(最好不使用JavaScript或添加额外的div)?

我希望#header div的高度与内容一样小,并且宽度应为#container div的100%,并且#container恰好适合于#main div。

jsfiddle:http://jsfiddle.net/2SKY4/

CSS:

#main {
    width: 200px;
    height: 200px;
    background-color:#ff0;
}
#container {
    background-color: #0f0;
    width: 90%;
    display:table;
    height:100%;
}
#header {
    background-color:#F0F;
    display:table-caption;
}
#splitpanel {
    display:table-row;
    background-color:#0ff;
}
#leftpanel {
    background-color: #f00;
    overflow: scroll;
    display: table-cell;
}
#rightpanel {
    background: #00f;
    overflow: scroll;
    display: table-cell;
}


HTML:

<div id="main">
    <div id="container">
        <div id="header">Header</div>
        <div id="splitpanel">
            <div id="leftpanel"></div>
            <div id="rightpanel"></div>
        </div>
    </div>
</div>

最佳答案

我不确定你想要什么。小提琴已经有了想要的样子。
您最好显示快照并说出自己想要的内容。您正在使用不同类型的“显示”,这也没有多大意义。您能描述一下快照中想要的结构吗?

09-25 17:04
查看更多