Почему Safari игнорирует атрибуты высоты строки (tr) таблицы CSS после перерисовки? - PullRequest
2 голосов
/ 26 октября 2009

Я пытаюсь применить CSS-стилизацию к HTML-таблице, сгенерированной GWT (Google Web Toolkit) в Safari. В частности, я не могу заставить Safari соблюдать атрибут высоты строки таблицы после того, как я инициирую любой вид перерисовки таблицы.

Следующий базовый пример иллюстрирует проблему:

<html>
    <head>
        <style type="text/css">
            tr {
                height: 50px;
                font-weight: bold; /* added to prove that other style rules are re-applied when enabling css again */
            } 
        </style>
    </head>
    <body>
        <table border="1px">
            <tr>
                <td>one</td>
                <td>two</td>
                <td>three</td>
            </tr>
        </table>
    </body>
</html>

Если я открою эту страницу в Safari, она сначала будет правильно отображаться. Если я затем выберу «отключить стили» в меню «Разработка», а затем сразу же снова включу их, правило высоты игнорируется и высота строки таблицы вычисляется так, как если бы она была установлена ​​на «авто».

Это именно то, что происходит, когда строки / ячейки добавляются или удаляются программно в моей GWT FlexTable.

Кто-нибудь знает, что вызывает такое поведение и существует ли обходной путь, который не требует установки фиксированной высоты для всей таблицы?

Подробнее: Запуск Safari версии 4.0.3 (5531.9) на Mac OSX Leopard
Проблема также возникает при использовании браузера GWT Hosted Mode (который по сути является Safari при запуске его на Mac)

Ответы [ 2 ]

3 голосов
/ 26 октября 2009

TR теги не имеют атрибута высоты в спецификации W3C. Вместо этого вы должны установить высоту тегов TD, которые он содержит.

0 голосов
/ 26 октября 2009

WebKit оптимизирован для производительности и иногда отказывается перерисовывать определенные области, если считает, что это не нужно Вы можете обойти это, запустив полное перерисовывание, например, изменение размера окна на 1px и 1px назад (должен быть более разумный способ).

...