我有一个由div组成的结构,设置为像表格元素一样显示。这是一个输入表单,我希望左侧列(字段标签所在的位置)宽度为50%,加上2 em使星号可以放置在必填字段中,右侧列(字段所在位置)占据剩余空间。
我尝试使用“calc”来设置宽度,但至少在我的最新Chrome浏览器中,列的宽度变得任意,即使检查元素显示规则存在且处于活动状态。问题可能是什么?calc与display:table-cell不兼容吗?或者我在某个地方犯了错误?
以下是HTML:
我尝试使用“calc”来设置宽度,但至少在我的最新Chrome浏览器中,列的宽度变得任意,即使检查元素显示规则存在且处于活动状态。问题可能是什么?calc与display:table-cell不兼容吗?或者我在某个地方犯了错误?
以下是HTML:
<div class="mock-table">
<div class="entryRow">
<div class="mock-td nested-label-column">
<label class="entryFieldLabel" for="Mutations_0__GeneSpecies">Gene donor</label>
</div>
<div class="mock-td nested-field-column">
<select class="SpeciesList SpeciesListGene entryField" data-val="False" data-val-dropdown="False" data-val-number="False" id="SpeciesListGene_8449" name="Mutations[0].GeneSpecies.Value">
<option value="2">Black rat</option>
<option value="61">Cat</option>
<option value="4">Cattle</option>
</select>
<button class="addNewSpecies flatButtonSecondary" type="button" value="A_8449" id="GeneSpeciesList_8449">add other species</button>
</div>
</div>
这是相关的CSS代码:
.dialog-label-column, .nested-label-column {
width: calc(50% + 2em);
}
.dialog-field-column, .nested-field-column {
width: calc(50% - 2em);
}
.entryRow {
overflow: hidden;
display: table-row;
width: 100%;
}
div.mock-td {
display: table-cell;
vertical-align: top;
padding-bottom: 0.7em;
}
div.mock-table {
display: table;
}
在我显示它的浏览器窗口宽度下,左列宽度为130px,右列宽度为371px,显然不是我想要的近50%的宽度。
calc()
函数可以在任何需要数值的地方使用。但在这种情况下,是表格布局算法造成了干扰。 - BoltClock