Ci sono risultati di ricerca memorizzati in una tabella come quella qui sotto:nascondere un <tr>, pur coinvolgendo in calcoli larghezza
<table>
<tbody>
<tr>
<td>Column One</td>
<td>Column Two</td>
<td>Column Three</td>
</tr>
</tbody>
</table>
La tabella effettiva contiene molti più dati (sia in colonne e righe) ed è larghezza del fluido. Poiché i dati sono variabili, vorrei che lo table-layout
rimanga auto
, perché gestisce l'autoresizing (che sarebbe costoso e complicato da fare in javascript per dire 1.000 righe).
Questa tabella viene inoltre filtrata da un widget di ricerca in tempo reale che nasconde le righe che non corrispondono alla query aggiungendo display: none;
. Tuttavia, ho trovato che questo spesso fa ricalcolare le larghezze della colonna (spesso causando alcuni salti stridenti nella larghezza della colonna). Questo ha senso, dato che le righe sono probabilmente incluse nei calcoli solo se hanno display: table-row;
. Ma questo non è il comportamento che sto cercando.
E 'possibile nascondere un <tr>
alla vista, ma ancora averlo incluso nella colonna larghezze calcoli fatti (il ridimensionamento, per esempio) dal browser su un tavolo con table-layout: auto;
?
Ho provato a installare height: 0;
(e max-height: 0;
), ma ho imparato da other SO questions che questo non funziona a causa di display: table-cell;
. Allo stesso modo, l'impostazione line-height: 0;
non è andata a buon fine, ma ho pensato che sarebbe successo perché alcune delle mie colonne hanno contenuto di blocco.
Ho anche preso in considerazione l'impostazione esplicita delle larghezze su <td>
s, ma in questo modo si mantiene fluido il tavolo (dovrei rimuovere le larghezze esplicite sul ridimensionamento, il che potrebbe causare salti di larghezza e non funzionerebbe a meno che non tutto delle righe erano visibili e incluse nel calcolo del ridimensionamento della tabella del browser).
Edit: per chiarire, per nascondere alla vista intendo nascondere come nel senso di display: none;
, non visibility: hidden;
. L'ultimo dei quali funzionerebbe se l'elemento non mantenesse l'altezza originale quando è nascosto, ma sfortunatamente non è così.
Nota: so che a prima vista questa sembra essere una domanda strettamente applicabile, ma credo che questo potrebbe essere un caso di uso comune. Come tale, ho messo in evidenza la parte più pertinente (leggi: il più importante) della domanda. Il resto (che è leggermente specifico per me) è più esplicativo di ogni altra cosa.
solito mostrando temporaneamente prima di calcoli e poi nascondere di nuovo una volta che il gioco è fatto dovrebbe fare il trucco, poiché gli oggetti nascosti non ricevono alcun valore CSS. Quindi, per prima cosa mettere il suo display in blocco (o inline-cell, o qualsiasi altra cosa), quindi tornare a visualizzare nessuno di solito fa il trucco per me. Se i tuoi calcoli sono veloci, non c'è alcun flash. – somethinghere
Prova 'max-altezza'. Solo una supposizione. –
@torazaburo Questa è un'idea interessante. Sfortunatamente, soffre dello stesso problema che ha l'impostazione dell'altezza di una riga della tabella. L'ho provato con una combinazione di 'height',' visibility: hidden; ', e' overflow: hidden; 'inutilmente. –