我正在使用display:table
和固定表格布局来展示网页应用程序中的一些数据。
表格宽度设置为100%。有两列,我明确地在第二列上设置了宽度。根据规范,在计算列宽度后,“如果表格比列宽度更宽,则额外空间应分配到列中。”
然而,当第二列是一个input
元素时,这似乎不像预期那样工作。在这种情况下,第二列保留指定的宽度,第一列占表格的50%。额外的空间没有分配到列上,因此表格无法填充可用的宽度。
以下是一个例子;第一个测试按预期工作,第二个测试则不行:
.row {
display: table;
table-layout: fixed;
width: 100%;
}
.cell {
display: table-cell;
border: 1px solid #aaa;
}
.right {
width: 200px;
}
<p>Test 1 -- works as expected</p>
<div class="row">
<div class="cell">Label</div>
<div class="cell right">Field</div>
</div>
<p>Test 2 -- table does not fill available width</p>
<div class="row">
<div class="cell">Label</div>
<input class="cell right" type="text" value="Text input" />
</div>