Table 单元格难题:尝试将 link 在 table 单元格内垂直居中,而整个单元格区域是 link 可点击
Table cell conundrum: trying to vertically center a link inside a table cell whose entire cell area is link-clickable
如您所见,为了使整个 table 单元格 link 可点击,我使用了 td a {display: block}
。问题是 td a {vertical-align: middle}
不再适用于 display: block
。不知道如何将它垂直居中。任何帮助将不胜感激。
P.S。我避免使用 line-height
因为我的 link 需要多行。
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>
如您所见,为了使整个 table 单元格 link 可点击,我使用了 td a {display: block}
。问题是 td a {vertical-align: middle}
不再适用于 display: block
。不知道如何将它垂直居中。任何帮助将不胜感激。
P.S。我避免使用 line-height
因为我的 link 需要多行。
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>