Perché Safari ignora gli attributi di altezza della riga della tabella CSS (TR) dopo il ridisegno?
-
06-07-2019 - |
Domanda
Faccio fatica ad applicare lo stile css a una tabella html generata da GWT (Google Web Toolkit) in Safari. In particolare, non riesco a far sì che Safari rispetti l'attributo height di una riga della tabella dopo aver attivato qualsiasi tipo di ridisegno della tabella.
Il seguente esempio di base illustra il 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 apro questa pagina in Safari, all'inizio viene visualizzato correttamente. Se poi scelgo " disabilita gli stili " dal menu Sviluppo e quindi riattivarli immediatamente, la regola dell'altezza viene ignorata e l'altezza della riga della tabella viene calcolata come se fosse impostata su "quotazione automatica".
Questo è esattamente ciò che accade quando le righe / celle vengono aggiunte o rimosse in modo programmatico nella mia GWT FlexTable.
Qualcuno sa cosa causa questo comportamento e se esiste una soluzione alternativa che non richiede l'impostazione di un'altezza fissa sull'intera tabella?
Dettagli:
Esecuzione di Safari versione 4.0.3 (5531.9) su Mac OSX Leopard
Il problema si verifica anche utilizzando il browser GWT Hosted Mode (che essenzialmente è Safari quando lo si esegue su un mac)
Soluzione
TR
non hanno attributi di altezza nelle specifiche del W3C. Dovresti invece impostare l'altezza dei tag TD
che contiene,
Altri suggerimenti
WebKit è ottimizzato per le prestazioni e talvolta si rifiuta di ridisegnare determinate aree, se ritiene di non doverlo fare. Potresti essere in grado di aggirare questo innescando un ridisegno totale, ad es. ridimensionando la finestra di 1px e 1px indietro (ci deve essere un modo più intelligente).