【发布时间】:2015-01-22 03:50:27
【问题描述】:
我正在尝试使用 display: table* CSS 属性设置对齐的 html 表单的样式。现在我正在使用这样的东西:
.form-aligned {
display: table;
}
.form-aligned label {
display: table-row;
}
.form-aligned .label {
width: 100px;
}
.form-aligned .label,
.form-aligned input,
.form-aligned .error {
display: table-cell;
}
<form class="form-aligned">
<label>
<span class="label">Age</span>
<input/>
<span class="error">Must be a number between 1 and 199</span>
</label>
<label>
<span class="label">Last or First or Whatever name</span>
<input/>
<span class="error">Be serious please</span>
</label>
</form>
它工作得很好,但是当标签太长时(如在第二个输入中),输入元素与行的顶部对齐。它看起来有点难看。我想要一个输入在行的中间对齐。但我不知道如何实现。
我尝试使用vertical-align: middle,但它似乎不起作用。
如果我将输入包含在容器中,它将起作用。但这是我想避免的额外标记。
这是小提琴:http://jsfiddle.net/oab5hbqo/1/,下面是具有正确 vertical-align 行为的真实表格(我试图通过 CSS 实现)。
【问题讨论】: