为什么 display:block 会影响 Firefox 中的垂直对齐?
Why does display:block affect vertical alignment in Firefox?
查看下面的代码。这在 Chrome 和 Edge 中看起来不错,但它会将文本与 Firefox 中的底部对齐。另外在不同的浏览器中 check this CodePen 看看我的意思。这是什么原因造成的?
.table {display:table;}
.row {display:table-row;}
.cell{display:table-cell;}
.input input{display:block; margin:10px 0;}
<div class="table">
<div class="row">
<div class="cell txt">
This is text
</div>
<div class="cell input">
<input type="txt">
</div>
</div>
<div class="row">
<div class="cell txt">
This is text
</div>
<div class="cell input">
<input type="txt">
</div>
</div>
</div>
要解决此问题,您可以将 vertical-align: middle;
添加到 .cell
class。另外,我会在 .cell
本身内部使用 padding
创建项目周围的垂直间距。这样,所有单元格共享相同的间距。
(请注意,您在 .table
规则中拼错了 display
。)
.table {display: table;}
.row {display: table-row;}
.cell {
display: table-cell;
padding: 0 0 10px 0;
vertical-align: middle;
}
.input input {
display: block;
padding: 20px;
}
<div class="table">
<div class="row">
<div class="cell txt">
This is text
</div>
<div class="cell input">
<input type="txt">
</div>
</div>
<div class="row">
<div class="cell txt">
This is text
</div>
<div class="cell input">
<input type="txt">
</div>
</div>
</div>
查看下面的代码。这在 Chrome 和 Edge 中看起来不错,但它会将文本与 Firefox 中的底部对齐。另外在不同的浏览器中 check this CodePen 看看我的意思。这是什么原因造成的?
.table {display:table;}
.row {display:table-row;}
.cell{display:table-cell;}
.input input{display:block; margin:10px 0;}
<div class="table">
<div class="row">
<div class="cell txt">
This is text
</div>
<div class="cell input">
<input type="txt">
</div>
</div>
<div class="row">
<div class="cell txt">
This is text
</div>
<div class="cell input">
<input type="txt">
</div>
</div>
</div>
要解决此问题,您可以将 vertical-align: middle;
添加到 .cell
class。另外,我会在 .cell
本身内部使用 padding
创建项目周围的垂直间距。这样,所有单元格共享相同的间距。
(请注意,您在 .table
规则中拼错了 display
。)
.table {display: table;}
.row {display: table-row;}
.cell {
display: table-cell;
padding: 0 0 10px 0;
vertical-align: middle;
}
.input input {
display: block;
padding: 20px;
}
<div class="table">
<div class="row">
<div class="cell txt">
This is text
</div>
<div class="cell input">
<input type="txt">
</div>
</div>
<div class="row">
<div class="cell txt">
This is text
</div>
<div class="cell input">
<input type="txt">
</div>
</div>
</div>