Я реализую решение для перекрестного выделения строк и столбцов таблицы на основе CssTricks ::before
& ::after
+ отрицательный z-index
взлом.
Цель состоит в том, чтобы сделать это только с помощью CSS,если возможно.
Я хочу установить для всех выделенных ячеек текста красный цвет.
Для строк это просто, мы просто устанавливаем правило, например tbody tr:hover td { color: red; }
Но для столбцовЯ не могу придумать способ сделать это ... Есть ли способ добиться того же с помощью столбцов?
table {
overflow: hidden;
}
th {
background-color: silver;
color: white;
}
td, th {
padding: 10px;
position: relative;
outline: 0;
}
body:not(.nohover) tbody tr:hover {
background-color: #ffa;
}
/* font settings for highlighted Row */
tbody tr:hover td {
color: red;
font-weight: bold;
}
/* font settings for highlighted Column??????? */
/* (how to do it?) */
td:hover::after,
thead th:not(:empty):hover::after,
td:focus::after,
thead th:not(:empty):focus::after {
content: '';
height: 10000px;
left: 0;
position: absolute;
top: -5000px;
width: 100%;
z-index: -1;
}
td:hover::after,
th:hover::after {
background-color: #ffa;
}
td:focus::after,
th:focus::after {
background-color: lightblue;
}
/* Focus stuff for mobile */
td:focus::before,
tbody th:focus::before {
background-color: lightblue;
content: '';
height: 100%;
top: 0;
left: -5000px;
position: absolute;
width: 10000px;
z-index: -1;
}
<main>
<table>
<thead>
<tr>
<th></th>
<th class="col">50kg</th>
<th class="col">55kg</th>
<th class="col">60kg</th>
<th class="col">65kg</th>
<th class="col">70kg</th>
</tr>
</thead>
<tbody>
<tr>
<th class="row">160cm</th>
<td>20</td>
<td>21</td>
<td>23</td>
<td>25</td>
<td>27</td>
</tr>
<tr>
<th class="row">165cm</th>
<td>18</td>
<td>20</td>
<td>22</td>
<td>24</td>
<td>26</td>
</tr>
<tr>
<th class="row">170cm</th>
<td>17</td>
<td>19</td>
<td>21</td>
<td>23</td>
<td>25</td>
</tr>
<tr>
<th class="row">175cm</th>
<td>16</td>
<td>18</td>
<td>20</td>
<td>22</td>
<td>24</td>
</tr>
<tbody>
</table>
</main>
См. Pen
Подсветка строк и столбцов только с помощью CSS от antonio-rodrigues (
@ antonio-rodrigues ) на
CodePen .
Ожидаемые результаты: установите color: red
для всех ячеек выделенного столбца, оставьте все остальные ячейки таблицы с черным цветом по умолчанию.
Как добиться этого только с помощью CSS?