Непоследовательность стиля в Chrome и Firefox
У меня есть таблица, что для одной из ее я использую правило
border-right: 3px solid #000 !important;
Он отлично работает в Chrome, но в Firefox граница невидима. Я говорю невидимый, потому что, если я деактивирую правило, я вижу, что содержимое ячеек слегка перемещается.
-moz-box-sizing: border-box;
Ничего не помогло, насколько я могу судить.
Итак, если вы хотите запустить этот небольшой пример в Chrome, это выглядело бы неплохо. В Firefox вы можете обнаружить некоторые ошибки (не забудьте просмотреть более широкую ширину, чтобы увидеть ошибку)
Я попробовал другой предлагаемый вариант без хороших результатов. Ближе к решению проблемы было удаление border-collapse
в целом, но это делает все границы видимыми, как видно из изображения ниже:
![введите описание изображения здесь]()
Это распространено для Firefox, и как я могу решить эту проблему.
Ответы
Ответ 1
Я обновил оригинальный jsfiddle https://jsfiddle.net/sfodcjkz/4/ с некоторыми незначительными трюками
https://jsfiddle.net/sfodcjkz/18/.
Изменения, которые я перенес над вашей скрипкой, следующие:
- Удалены пустые элементы
<tbody>
. Лучшей практикой является группировка строк тела внутри <tbody>
. Некоторые современные браузеры могут автоматически исправлять ошибки, но не все браузеры достаточно умны. Поэтому для согласованности мы можем избежать зависимости от более умных браузеров.
- Затем у меня были проблемы с этими css:
Линия: 349
.responsive-table thead {
clip: auto;
height: auto;
overflow: auto;
position: relative;
width: auto;
}
Line: 258
.responsive-table thead {
border: 0 none;
clip: rect(1px, 1px, 1px, 1px);
height: 1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
}
Просто удалите эти стили css, и вы сможете увидеть более чистый вид.
Ответ 2
Можно попытаться добавить еще один элемент блока внутри ячейки таблицы и применить стиль границы к этому элементу. Например, вы можете попытаться сделать что-то вроде этого:
<table>
<tr>
<td>
<div style="border-right: 3px solid #000;">My Content</div>
</td>
</tr>
</table>
Табличные ячейки типа <td>
и <th>
имеют размер, отличный от обычного блока, встроенного блока или встроенных элементов, и поэтому границы могут также вычисляться немного по-разному в зависимости от доступного пространства.
Используя <div>
внутри вашей ячейки таблицы, вы можете установить ее ширину до 100% и высоту до 100%, чтобы она покрывала всю доступную ячейку таблицы, тогда вы можете применить любую границу, которая вам нравится, к div и с box-sizing:border-box
, установленным в элементе div, он должен выглядеть так, как вы хотите. Например:
<div style="border-right: 3px solid #000; width: 100%; height: 100%; box-sizing: border-box;">My Content</div>
Вот более подробная информация о размерах таблиц/размерности в коробке
Ответ 3
Это известная ошибка в Firefox. Это вызвано установкой border-collapse
на collapse
. Одно из решений - установить border-collapse
на separate
.