问题描述
如您所见,为了使整个表格单元格可链接点击,我使用了 td a {display: block}
。问题是 td a {vertical-align: middle}
不再适用于 display: block
。不知道如何垂直居中。任何帮助将不胜感激。
附言我避免使用 line-height
,因为我的链接需要是多行的。
table {
width: 300px;
border-collapse: collapse;
}
td {
border: 1px solid #000000;
height: 100px;
vertical-align: middle;
}
td a {
display: block;
height: 100px;
vertical-align: middle !important;
}
<table>
<tr>
<td>TEXT</td>
<td><a href="">LINK</a></td>
</tr>
</table>
解决方法
您可以使用辅助 span
并将其居中放置在锚点内,以便其内容可以自由移动和对齐。
例如:
table {
width: 300px;
border-collapse: collapse;
}
td {
border: 1px solid #000000;
height: 100px;
vertical-align: middle;
}
td a {
display: flex;
height: 100%;
}
td a span {
height: fit-content;
align-self: center;
}
<table>
<tr>
<td>TEXT</td>
<td>
<a href="">
<span>
A VERY LONG LINK MAY BE LIKE THIS ONE,I GUES,RIGHT? HERE WE GO :D
</span>
</a>
</td>
</tr>
</table>
在锚标记中添加了跨度并对输出进行了 CSS 更改
table {
width: 300px;
border-collapse: collapse;
}
td {
border: 1px solid #000000;
height: 100px;
vertical-align: middle;
}
td a {
display: table;
position: relative;
height: 100%;
width: 100%;
}
span {
display: table-cell;
text-align:center;
vertical-align: middle;
}
<table>
<tr>
<td>TEXT</td>
<td><a href=""><span>LINK</span></a></td>
</tr>
</table>