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


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

Вот дистиллированная версия проблемы. Обратите внимание на следующую таблицу в браузере на основе 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 в качестве обходного пути, хотя это делает таблицу несколько менее доступной.

2 8

2 ответа:

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

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

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

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

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