Por que Safari ignorar atributos CSS linha da tabela (tr) de altura após re-desenhar?
-
06-07-2019 - |
Pergunta
Eu estou lutando para aplicar css-styling para um GWT (Google Web Toolkit) tabela HTML gerado no Safari. Especificamente, eu não consigo Safari respeitar o atributo altura de uma linha da tabela depois de desencadear qualquer tipo de re-desenhar da tabela.
O seguinte exemplo básico ilustra o problema:
<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>
Se eu abrir esta página no Safari torna corretamente em primeiro lugar. Ora, se eu escolher "desativar estilos" no menu Desenvolver e logo em seguida reativá-los novamente, a regra heigh é ignorado e a altura da linha da tabela é calculada como se tivesse sido definida como "auto".
Este é exatamente o que acontece quando linhas / células são adicionados ou removidos através de programação no meu GWT FlexTable.
Alguém sabe o que causa esse comportamento e se há uma solução que não requer a criação de uma altura fixa em toda a mesa?
Detalhes:
Correndo Safari Versão 4.0.3 (5531,9) no Mac OSX Leopard
O problema também ocorre usando o navegador Modo GWT Hospedado (que é essencialmente Safari quando executá-lo em um Mac)
Solução
marcas TR
não têm nenhum atributo de altura nas especificações do W3C. Você deve definir a altura das tags TD
que ele contém, em seu lugar.
Outras dicas
WebKit é otimizado para desempenho e recusa-se, por vezes, para redesenhar certas áreas, se ele pensa que não precisa. Você pode ser capaz de contornar isso desencadear um redesenho total, por exemplo redimensionar a janela por 1px e 1px para trás (deve haver alguma maneira mais inteligente).