Вы не пометили javascript
, поэтому при условии, что вам нужно решение только для css, есть этот трюк , но он выделит весь столбец.
(К сожалению, вы можете 't выберите на данный момент предыдущий элемент с помощью CSS, поэтому вам нужно будет использовать javascript, чтобы выбрать только предыдущий <th>
.
table {
overflow: hidden;
}
tr:hover {
background-color: #ffa;
}
td, th {
position: relative;
}
td:hover::after,
th:hover::after {
content: "";
position: absolute;
background-color: #ffa;
left: 0;
top: -5000px;
height: 10000px;
width: 100%;
z-index: -1;
}
<table>
<tr>
<th>th1</th>
<th>th2</th>
<th>th3</th>
<th>th4</th>
</tr>
<tr>
<td>td1.1</td>
<td>td1.2</td>
<td>td1.3</td>
<td>td1.4</td>
</tr>
<tr>
<td>td2.1</td>
<td>td2.2</td>
<td>td2.2</td>
<td>td2.2</td>
</tr>
</table>