У меня есть таблица фиксированной ширины и высоты, и обычно она равномерно распределяет ячейки, чтобы соответствовать заданной ширине и высоте.Однако, как только я добавляю границы на только некоторых ячеек, ячейки перестают равномерно распределяться.
Похоже, что ячейки с границей получают большую ширину, чем другие ячейки.Кроме того, ячейки с более толстой рамкой становятся шире, чем ячейки с тонкой рамкой.
Вот код, показывающий, что происходит.Зеленые ячейки - это ячейки с border-left
, а красные и синие ячейки не имеют правой или левой границы.
<table style="width: 500px; height: 1000px; border-spacing: 0; background-color: gray;">
<tr>
<td style="background-color: blue; border-left: none; border-top: white solid 1px;"></td>
<td style="background-color: green; border-left: white solid 1px; border-top: white solid 1px;"></td>
<td style="background-color: red; border-left: none; border-top: white solid 1px;"></td>
<td style="background-color: blue; border-left: none; border-top: white solid 1px;"></td>
<td style="background-color: green; border-left: white solid 1px; border-top: white solid 1px;"></td>
<td style="background-color: red; border-left: none; border-top: white solid 1px;"></td>
<td style="background-color: blue; border-left: none; border-top: white solid 1px;"></td>
<td style="background-color: green; border-left: white solid 1px; border-top: white solid 1px;"></td>
<td style="background-color: red; border-left: none; border-top: white solid 1px;"></td>
</tr>
<tr>
<td style="background-color: blue; border-left: none; border-top: white solid 1px;"></td>
<td style="background-color: green; border-left: white solid 1px; border-top: white solid 1px;"></td>
<td style="background-color: red; border-left: none; border-top: white solid 1px;"></td>
<td style="background-color: blue; border-left: none; border-top: white solid 1px;"></td>
<td style="background-color: green; border-left: white solid 1px; border-top: white solid 1px;"></td>
<td style="background-color: red; border-left: none; border-top: white solid 1px;"></td>
<td style="background-color: blue; border-left: none; border-top: white solid 1px;"></td>
<td style="background-color: green; border-left: white solid 1px; border-top: white solid 1px;"></td>
<td style="background-color: red; border-left: none; border-top: white solid 1px;"></td>
</tr>
<tr>
<td style="background-color: blue; border-left: none; border-top: white solid 1px;"></td>
<td style="background-color: green; border-left: white solid 1px; border-top: white solid 1px;"></td>
<td style="background-color: red; border-left: none; border-top: white solid 1px;"></td>
<td style="background-color: blue; border-left: none; border-top: white solid 1px;"></td>
<td style="background-color: green; border-left: white solid 1px; border-top: white solid 1px;"></td>
<td style="background-color: red; border-left: none; border-top: white solid 1px;"></td>
<td style="background-color: blue; border-left: none; border-top: white solid 1px;"></td>
<td style="background-color: green; border-left: white solid 1px; border-top: white solid 1px;"></td>
<td style="background-color: red; border-left: none; border-top: white solid 1px;"></td>
</tr>
</table>
В случае, если это проблема, связанная с браузером, вот снимок экрана Chrome 66 в Mac OS X High Sierra.
Я подтвердил в других браузерах, и то же самое происходит:
- Safari 11.1
- Opera 52
- Firefox 57
Мой вопрос: Что вызывает это и Как это исправить? Обратите внимание, что в моем реальном коде у меня есть границы различной толщины.