Установить цвет текста выделенного столбца таблицы - PullRequest
0 голосов
/ 24 апреля 2019

Я реализую решение для перекрестного выделения строк и столбцов таблицы на основе 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?

...