Как раскрасить столбец таблицы определенным классом в заголовке с помощью CSS?

table, th, td {
  padding: 10px;
  border: 1px solid black;
  border-collapse: collapse;
}

th.red {
  background-color: red;
}
<table>
  <thead>
    <tr>
      <th>q</th><th class = "red">w</th><th>e</th><th>r</th><th>t</th><th>y</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>q1</td><td>w1</td><td>e1</td><td>r1</td><td>t1</td><td>y1</td>
    </tr>
    <tr>
      <td>q2</td><td>w2</td><td>e2</td><td>r2</td><td>t2</td><td>y2</td>
    </tr>
  </tbody>
</table>

Есть ли способ раскрасить столбец таблицы, заголовок которого имеет определенный класс, с помощью CSS?

Например, в этой таблице нужно раскрасить второй столбец.

Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
0
78
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Вы можете имитировать это, используя переливающуюся окраску, исходящую из заголовка.

table,th,td {
  padding: 10px;
  border: 1px solid black;
  border-collapse: collapse;
}

th.red {
  position: relative;
}
th.red:before {
  content: "";
  position: absolute;
  z-index: -1; /* a negative z-index */
  inset: 0 0 -999px; /* big value for the bottom */
  background: red;
}
table {
  overflow: hidden; /* hide the overflow of the pseudo element */
  isolation: isolate; /* make sure the coloration stay within the table (create a stacking context) */
  background: #f2f2f2;
}
<table>
  <thead>
    <tr>
      <th>q</th><th class = "red">w</th><th>e</th><th>r</th><th>t</th><th>y</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>q1</td><td>w1</td><td>e1</td><td>r1</td><td>t1</td><td>y1</td>
    </tr>
    <tr>
      <td>q2</td><td>w2</td><td>e2</td><td>r2</td><td>t2</td><td>y2</td>
    </tr>
  </tbody>
</table>
Ответ принят как подходящий

Вы также можете поставить <colgroup>... https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col

table, th, td {
  padding: 10px;
  border: 1px solid black;
  border-collapse: collapse;
}

.col_red {
  background-color: red;
}
<table>
  <colgroup>
    <col />
    <col class = "col_red" />
   </colgroup>
  <thead>
    <tr>
      <th>q</th><th>w</th><th>e</th><th>r</th><th>t</th><th>y</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>q1</td><td>w1</td><td>e1</td><td>r1</td><td>t1</td><td>y1</td>
    </tr>
    <tr>
      <td>q2</td><td>w2</td><td>e2</td><td>r2</td><td>t2</td><td>y2</td>
    </tr>
  </tbody>
</table>

Вау, это очень хорошо, спасибо! Один вопрос - что делать, если ячейки столбца уже окрашены их атрибутами "стиля"?

Zourab 29.08.2024 08:50

@Zourab, что вы хотите, чтобы произошло, если ячейка столбца уже имеет цвет фона?

Brett Donald 29.08.2024 08:57

@Zourab Я не думаю, что тогда у тебя получится использовать col в такой ситуации. Developer.mozilla.org/en-US/docs/Web/HTML/Element/…: «Поскольку цвет фона столбца закрашивается поверх таблицы и групп столбцов (<colgroup>), но за фоновыми цветами применяются для групп строк (<thead>, <tbody> и <tfoot>), строк (<tr>) и отдельных ячеек (<th> и <td>), фон, примененный к столбцам таблицы, виден только в том случае, если каждый слой, нарисованный поверх них, имеет прозрачный фон».

C3roe 29.08.2024 08:57

@Бретт Дональд, если ячейка столбца (<td>) уже имеет цвет фона, и я добавляю класс col_red к соответствующему тегу <col>, тогда все ячейки столбцов должны быть окрашены в соответствии с классами col_red.

Zourab 29.08.2024 09:42

@Zourab Тег colgroup появился раньше css3, поэтому вместо этого планируйте использовать селектор :nth-child() с минимумом JS-кода. PS: мой ответ согласуется с вашим вопросом. Если у вас другая проблема, вам следует задать новый вопрос.

Mister Jojo 29.08.2024 15:48

Вы можете использовать селектор :nth-child().

table, th, td {
  padding: 10px;
  border: 1px solid black;
  border-collapse: collapse;
}

tr > :nth-child(2) {
  background-color: red;
}
<table>
  <thead>
    <tr>
      <th>q</th><th>w</th><th>e</th><th>r</th><th>t</th><th>y</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>q1</td><td>w1</td><td>e1</td><td>r1</td><td>t1</td><td>y1</td>
    </tr>
    <tr>
      <td>q2</td><td>w2</td><td>e2</td><td>r2</td><td>t2</td><td>y2</td>
    </tr>
  </tbody>
</table>

Цель состоит в том, чтобы окрасить столбец, когда пользователь нажимает на его заголовок, поэтому мы не знаем номер столбца заранее.

Zourab 29.08.2024 08:43

также tr :nth-child(2) {

Mister Jojo 29.08.2024 17:41

Другие вопросы по теме