有没有办法在输入中垂直居中这个标签?我确实尝试过table / table-cell方法,但它在这里没有用。
HTML:
<table class="header-table">
<tbody>
<tr>
<td class="column-2">
<label>asdf</label>
<input>
</td>
</tr>
</tbody>
</table>
的CSS:
.header-table .column-2 label {
position: absolute;
}
.header-table .column-2 input {
height: 32px;
}
答案 0 :(得分:2)
你可以试试这个:
.header-table .column-2 {
position: relative;
}
.header-table .column-2 label {
position: absolute;
top: 50%;
transform: translateY(-50%);
}
.header-table .column-2 input {
height: 32px;
}
&#13;
<!-- placeholder vertical centered -->
<table class="header-table">
<tbody>
<tr>
<td class="column-2">
<label>asdf</label>
<input>
</td>
</tr>
</tbody>
</table>
&#13;
使用transform
和top
垂直偏移标签。这样做会根据元素的大小自动缩放。无需猜测偏移量等。)
浏览器也很受支持 - http://caniuse.com/#search=transform
答案 1 :(得分:0)
您的绝对定位目前与其内部的单元格无关。
<!-- placeholder vertical centered -->
<table class="header-table">
<tbody>
<tr>
<td class="column-2">
<label>asdf</label>
<input>
</td>
</tr>
</tbody>
</table>
&#13;
{{1}}&#13;
答案 2 :(得分:0)
由于容器的高度为32px
,因此您可以为标签指定32px
行高。这可能是一个简单的技巧,因为您不必担心浏览器支持。
见,
.header-table .column-2 label {
position: absolute;
line-height: 32px;
}
.header-table .column-2 input {
height: 32px;
}
td.column-2 {
position: relative;
}
<!-- placeholder vertical centered -->
<table class="header-table">
<tbody>
<tr>
<td class="column-2">
<label>asdf</label>
<input>
</td>
</tr>
</tbody>
</table>