Я пытаюсь составить таблицу с двумя липкими колонками с каждой стороны и несколькими посередине, которые можно переместить.
Пока почти все работает, у меня есть одна небольшая проблема:
Я буду использовать color:red;
в некоторых TD. Для примера я сделал их всех красными. Если вы попытаетесь сравнить красный текст в столбце-липучке и красный текст в столбце-липучке, вы увидите, что они разные. Как я могу это исправить?
#MyTable {
background-color: #333333;
overflow-x: auto;
white-space: nowrap;
margin-left: 0px;
color: red;
}
#MyTable>thead>tr>th,
#MyTable>tbody>tr>td {
min-width: 150px;
max-width: 150px;
}
#MyTable>thead>tr>th:nth-child(1),
#MyTable>tbody>tr>td:nth-child(1) {
color: red;
position: sticky;
left: 0;
background-color: #333333;
}
#MyTable>thead>tr>th:nth-child(2),
#MyTable>tbody>tr>td:nth-child(2) {
color: red;
position: sticky;
left: 150px;
background-color: #333333;
}
#MyTable>thead>tr>th:nth-last-child(1),
#MyTable>tbody>tr>td:nth-last-child(1) {
color: red;
position: sticky;
right: 0;
background-color: #333333;
}
#MyTable>thead>tr>th:nth-last-child(2),
#MyTable>tbody>tr>td:nth-last-child(2) {
color: red;
position: sticky;
right: 150px;
background-color: #333333;
}
body {
margin: 0px;
}
<table id="MyTable">
<thead>
<tr>
<th>Col 1 Sticky</th>
<th>Col 2 Sticky</th>
<th>Col 3 Normal</th>
<th>Col 4 Normal</th>
<th>Col 5 Normal</th>
<th>Col 6 Normal</th>
<th>Col 7 Sticky</th>
<th>Col 8 Sticky</th>
</tr>
</thead>
<tbody>
<tr>
<td>Test Data</td>
<td>Test Data</td>
<td>Test Data</td>
<td>Test Data</td>
<td>Test Data</td>
<td>Test Data</td>
<td>Test Data</td>
<td>Test Data</td>
</tr>
<tr>
<td>Test Data</td>
<td>Test Data</td>
<td>Test Data</td>
<td>Test Data</td>
<td>Test Data</td>
<td>Test Data</td>
<td>Test Data</td>
<td>Test Data</td>
</tr>
<tr>
<td>Test Data</td>
<td>Test Data</td>
<td>Test Data</td>
<td>Test Data</td>
<td>Test Data</td>
<td>Test Data</td>
<td>Test Data</td>
<td>Test Data</td>
</tr>
</tbody>
</table>
Вот полный JSFiddle, показывающий проблему:
https://jsfiddle.net/6afueqgb/
As для решений - они должны работать только на Chrome 80+. * IE, поддержка Edge или FF не требуется, если это имеет значение.