Исчезающие границы ячеек таблицы CSS в браузерах на базе Gecko

У меня есть очень конкретная конструкция таблицы html, которая, кажется, обнаруживает ошибку Gecko.

Вот дистиллированная версия проблемы. Обратите внимание на следующую таблицу в браузере на основе gecko (например, FF): (вам придется скопировать и вставить ее в новый файл)

<style>
table.example{
    border-collapse:collapse;
}
table.example td {
    border:1px solid red;
}
</style>
<table class = "example">
    <thead>
        <tr>
            <th>1</th>
            <th>2</th>
            <th>3</th>          
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>1</td>
            <td>2</td>
            <td rowspan = "3">3</td>

        </tr>
        <tr>
            <td>1</td>
            <td>2</td>
        </tr>
        <tr>
            <td>1</td>
            <td rowspan = "2">2</td>      
        </tr>
        <tr>
            <td>1</td>
            <td>3</td>
        </tr>
    </tbody>
</table>

В нижней правой ячейке над цифрой «3» отсутствует строка - просмотрите ее в любом другом браузере, и строка будет отображаться должным образом. Что интересно, отбросьте раздел таблицы thead и посмотрите, что мы получим:

<style>
table.example{
    border-collapse:collapse;
}
table.example td {
    border:1px solid red;
}
</style>
<table class = "example">
    <tbody>
        <tr>
            <td>1</td>
            <td>2</td>
            <td rowspan = "3">3</td>

        </tr>
        <tr>
            <td>1</td>
            <td>2</td>
        </tr>
        <tr>
            <td>1</td>
            <td rowspan = "2">2</td>      
        </tr>
        <tr>
            <td>1</td>
            <td>3</td>
        </tr>
    </tbody>
</table>

Это заставляет его работать. Кто-нибудь это видел? Полагаю, я сейчас просто избавлюсь от раздела thead в качестве временного решения, хотя это сделает таблицу менее доступной.

для удобства первый пример: jsfiddle.net/eahb2t90/2

Tim Abell 02.02.2015 18:32
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
8
1
6 716
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Странно ... определенно ошибка рисования. Если вы щелкните правой кнопкой мыши, чтобы контекстное меню появилось над часть того места, где должна быть строка, то при закрытии контекстного меню строка будет перерисована под ним.

Обновлено: обходной путь - если вы поместите style = "border-color: ...;" на <td rowspan = "3">, вы можете получить границу, но это должен быть цвет разные - просто используйте тот, который как можно ближе к другим. Например, если таблица # ff0000, используйте # ff0001

Я тоже обнаружил эту ошибку, но она не на моем компьютере, а на другом. Если я изменю размер окна браузера после определенного разрешения, строки исчезнут. как только я разверну окно до максимума, все вернется. вы можете исправить это навсегда, установив border-collapse: separa; это дает каждому расточителю каждой ячейки свою ширину. Это не то, чем я хочу заниматься, но это работает.

Это также может быть вызвано использованием border-collapse: collapse; затем установите выравнивание границ на 1px, а затем на 0px. Поскольку он сжимает границы, кажется, что приоритет отдается 0px по ширине 1px.

в любом случае это только firefox, и это еще одна причина отойти от него.

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