Я столкнулся со странной проблемой при попытке стилизовать последние 2 столбца одной из моих широких html таблиц с использованием тегов colgroup
и col
.
Какие браузеры:
I протестировано на 2 браузерах на основе хрома, google chrome и opera, проблема не устранена. Но при тестировании на Mozilla Firefox проблемы вообще не было.
Проблема:
После часа отладки мне удалось обойти проблему, но я смог воспроизвести выпуск в сыром html документе. Который может быть просмотрен полностью в https://affectionate-lamport-fa8d14.netlify.app или минимальное воспроизведение можно увидеть ниже:
table, td, tr, th, {
white-space: nowrap;
font-size: inherit;
font-size: 25px;
}
th, td {
padding: 10px 22px;
border: 1px solid black;
}
body {
font-size: 25px;
}
table {
width: 100%;
}
.wrap {
overflow: auto;
display: flex;
flex-direction: column;
}
.bg-warning {
background-color: orange;
}
<div class="wrap">
<table>
<colgroup>
<col span="20">
<col span="2" class="bg-warning">
</colgroup>
<thead>
<tr>
<th colspan="2">Category 1</th>
<th colspan="2">C1</th>
<th colspan="2">Some long name category</th>
<th colspan="2">Category 10</th>
<th colspan="2">klj kwjbhd ejk </th>
<th colspan="2">Something else</th>
<th colspan="2">Maybe something more</th>
<th colspan="2">And so on</th>
<th colspan="2">Something weird</th>
<th colspan="2">Other stuff</th>
<th colspan="2">Not done by Test Company 1</th>
</tr>
</thead>
<tbody>
<tr>
<td >#</td>
<td >Amount</td>
<td >#</td>
<td >Amount</td>
<td >#</td>
<td >Amount</td>
<td >#</td>
<td >Amount</td>
<td >#</td>
<td >Amount</td>
<td >#</td>
<td >Amount</td>
<td >#</td>
<td >Amount</td>
<td >#</td>
<td >Amount</td>
<td >#</td>
<td >Amount</td>
<td >#</td>
<td >Amount</td>
<td >#</td>
<td >Amount</td>
</tr>
</tbody>
</table>
</div>
Как видите, класс bg-warning
не применяется к последнему столбцу таблицы (который имеет 2 colspan), проблема возникает только в браузеры с хромом, как упомянуто выше .
Что происходит, какой обходной путь:
Когда широкий table
с width: 100%
сидит внутри flex-column
и scroll auto
div его ширина ограничена размером экрана, даже если отображается полная таблица, и при прокрутке мы видим всю таблицу.
Эта проблема не заметна обычно, но если я пытаюсь применить некоторые css стилей / класс к последним 2 столбцам с чем-то вроде:
<colgroup>
<col span="20">
<col span="2" class="bg-warning">
</colgroup>
Они не применяются, мои стили применяются, если я изменяю width
css свойство table
от 100%
до fit-content
. (Ниже приведен пояснение к демонстрационной странице: https://gifyu.com/image/luCZ)
Однако есть еще кое-что, добавив его сюда просто для полноты, основная проблема, как описано выше , есть странный частичный стиль CSS, применяемый к свитку, который я не смог воспроизвести в моей демонстрации HTML. Что также исчезает, см. Рисунок ниже для некоторого понимания этого также. Вот это gif: https://gifyu.com/image/luFZ
Вопрос:
Есть ли хорошо известное объяснение этого поведения, оно, безусловно, выглядит как ошибка, если оно является ошибкой, пожалуйста, подтвердите и укажите мне, где сообщать об этих ошибках. Я бы хотел сам сообщить об этой ошибке, если это на самом деле ошибка, а не какой-то известный нам причуд.
Примечание : Достаточно ответа только на повторный пример.