<table>
<tr>
<td>Test</td>
<td>A long string blah blah blah</td>
</tr>
</table>
<style>
td{max-width:67%;}
</style>
Quanto sopra non funziona. Come posso impostare la larghezza massima di una cella di una tabella utilizzando le percentuali?
<table>
<tr>
<td>Test</td>
<td>A long string blah blah blah</td>
</tr>
</table>
<style>
td{max-width:67%;}
</style>
Quanto sopra non funziona. Come posso impostare la larghezza massima di una cella di una tabella utilizzando le percentuali?
Risposte:
Secondo la definizione di max-width nella specifica CSS 2.1, "l'effetto di 'min-width' e 'max-width' su tabelle, tabelle inline, celle di tabelle, colonne di tabelle e gruppi di colonne non è definito". Quindi non puoi impostare direttamente la larghezza massima su un elemento td.
Se vuoi solo che la seconda colonna occupi al massimo il 67%, puoi impostare la larghezza (che è in effetti la larghezza minima, per le celle della tabella) al 33%, ad esempio nel caso di esempio
td:first-child { width: 33% ;}
Impostarlo per entrambe le colonne non funzionerà così bene, poiché tende a far sì che i browser diano alle colonne la stessa larghezza.
Vecchia domanda lo so, ma ora è possibile utilizzando la proprietà css table-layout: fixedsul tag della tabella. Rispondi di seguito da questa domanda Larghezza percentuale CSS e overflow del testo in una cella di tabella
Questo è facilmente realizzabile usando table-layout: fixed, ma un po 'complicato perché non molte persone conoscono questa proprietà CSS.
table {
width: 100%;
table-layout: fixed;
}
Guardalo in azione sul violino aggiornato qui: http://jsfiddle.net/Fm5bM/4/
max-widthin quel jsfiddle, la larghezza rimarrà la stessa quindi non è quella max-widthche la imposta. Potrebbe essere più chiaro se lo sostituisci con uno max-width: 10%per il primo td... vedrai che non cambia. jsfiddle.net/w3f8ey22/1
So che è letteralmente un anno dopo, ma ho pensato di condividerlo. Stavo cercando di fare la stessa cosa e mi sono imbattuto in questa soluzione che ha funzionato per me. Abbiamo impostato una larghezza massima per l'intera tabella, quindi abbiamo lavorato con le dimensioni delle celle per ottenere l'effetto desiderato.
Metti la tabella nel suo div, quindi imposta la larghezza, la larghezza minima e / o la larghezza massima del div come desiderato per l'intera tabella. Quindi, puoi lavorare e impostare la larghezza e le larghezze minime per altre celle e la larghezza massima per il div lavorando efficacemente intorno e all'indietro per ottenere la larghezza massima che volevamo.
<div id="tablediv">
<table width="100%">
<tr>
<td class="tdleft">Test</td>
<td>A long string blah blah blah</td>
</tr>
</table>
</div>
Quindi nei tuoi stili metti:
#tablediv {
width:90%;
min-width:800px
max-width:1500px;
}
.tdleft {
width:20%;
min-width:200px;
}
Certo, questo non ti dà una larghezza "massima" di una cella di per sé, ma consente un certo controllo che potrebbe funzionare al posto di tale opzione. Non sono sicuro che funzionerà per le tue esigenze. So che ha funzionato per la nostra situazione in cui vogliamo che il lato di navigazione nella pagina si riduca su e giù fino a un certo punto, ma per tutti gli schermi larghi in questi giorni.