如何让相邻列的span标签高度自动撑开,即使单元格内容高度不一致?
如何在相邻列的单元格高度不等时,使相邻列的span标签高度均自动撑开?
给定的html和css代码如下:
<el-row class="row"> <el-col class="col"> <span class="label">上平行度</span> <span class="value"></span> </el-col> <el-col class="col"> <span class="label">平行度OK/NG</span> <span class="value"></span> </el-col> </el-row>
.row { border-bottom: solid .0625rem #9c9c9c; display: flex; align-items: center; justify-content: center; .col { height: 100%; display: flex; span:not(:last-child) { border-right: solid .0625rem #9c9c9c; } ::v-deep span { flex: 1; height: 100%; word-break: break-all; word-wrap: break-word; height: 23px; line-height: 23px; } .label { background-color: #e0e0e0; color: #000000; font-weight: bold; height: auto; } .value { height: auto; } } }
但这样会出现一个问题:
当一个单元格的内容较多时,它的高度会撑开,但另一个单元格的高度却不会自动撑开。
这是因为el-col的高度限制了span的高度。row的高度由col计算而来,而col的高度又由span计算而来。由于span的高度是auto,所以它的高度由内容决定。
要解决这个问题,首先将row的align-items从center改为stretch,使col占据整个容器的高度。
.row { align-items: stretch; }
然后,去除col的height: 100%;设置。
.col { height: unset; }
这时,col的高度会与父容器相同。可以发现,label的高度也会占据整个容器。
下一步是让col的内容居中。一种方法是给label设置flex布局。
.label { display: flex; align-items: center; }
以上就是如何让相邻列的span标签高度自动撑开,即使单元格内容高度不一致?的详细内容,更多请关注其它相关文章!