Несоответствие стиля colgroup col с colspan

Я пытаюсь выделить столбец с ячейками, которые используют атрибут span, например, всеобъемлющую ячейку заголовка.

Я попробовал это самым очевидным способом, используя colgroup а также col тег. К сожалению, это дает противоречивые результаты. Общая ячейка выделяется первым столбцом, который охватывает ее, но не последовательными (см. Пример ниже).

Я вижу, что при использовании цвета фона на разных цветах, тогда общая ячейка, если она подсвечена, должна иметь оба цвета, что невозможно. Следовательно, я думаю, что самый последовательный результат будет то, что он не получает цвета. Может быть, какой-то атрибут или так я могу установить, чтобы получить последовательное выделение?

Тест: https://jsfiddle.net/m13d2arf/1/

.highlight {
  background-color: red;
}
th, td {
  border: 1px solid;
}
<table>
  <colgroup>
    <col class="highlight">
    <col>
  </colgroup>
  <thead>
    <tr>
      <th colspan="2">1</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1.1</td>
      <td>1.2</td>
    </tr>
  </tbody>
</table>

<br>

<table>
  <colgroup>
    <col>
    <col class="highlight">
  </colgroup>
  <thead>
    <tr>
      <th colspan="2">1</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1.1</td>
      <td>1.2</td>
    </tr>
  </tbody>
</table>

1 ответ

Решение

В качестве обходного пути вы можете переопределить цвет фона элемента th.

th {
  background-color: white;
}

.highlight {
  background-color: red;
}
th {
  background-color: white;
}
th, td {
  border: 1px solid;
}
<table>
  <colgroup>
    <col class="highlight">
    <col>
  </colgroup>
  <thead>
    <tr>
      <th colspan="2">1</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1.1</td>
      <td>1.2</td>
    </tr>
  </tbody>
</table>

<br>

<table>
  <colgroup>
    <col>
    <col class="highlight">
  </colgroup>
  <thead>
    <tr>
      <th colspan="2">1</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1.1</td>
      <td>1.2</td>
    </tr>
  </tbody>
</table>

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