2012-10-19 17 views
14

Ho una tabella con width: 100% e un elemento in quella tabella con width: 40em; max-width: 100%, ma l'elemento sta ancora allungando la tabella quando la finestra del browser diventa troppo piccola.Tabella HTML - larghezza massima non funzionante sui discendenti td

Voglio che questo elemento sia una larghezza fissa ma non sia più grande del contenitore se il contenitore diventa troppo piccolo. Se non c'è spazio sufficiente per la larghezza fissa, lo max-width: 100% dovrebbe ridurlo per adattarsi allo spazio disponibile. Questo funziona al di fuori di un tavolo.

Si noti che lo max-width non si trova sul tavolo stesso. In realtà si trova su un elemento <input>, sebbene il codice che ho collegato includa una tabella separata con lo stesso problema su un elemento <span>. Include anche un campo <input> al di fuori della tabella che si comporta correttamente.

link to jsfiddle

risposta

20

Si dovrebbe usare table-layout: fixed per l'elemento tabella per ottenere le max-width proprietà dei discendenti <td> s' al lavoro.

Dal MDN:

La proprietà CSS table-layout definisce l'algoritmo da utilizzare per la layout celle di tabella, righe e colonne.

fisso valore:
Tabella delle larghezze sono definiti dalle larghezze di elementi di tabella e col o dalla larghezza della prima fila di celle. Le celle nelle righe successive non influiscono sulle larghezze delle colonne.

table { 
    table-layout: fixed; 
} 

WORKING DEMO.

+0

Questo sicuramente sembra più bello del mio esempio e illustra meglio le perversioni del modello di riquadri (che ho incluso principalmente per il completamento, nel caso in cui potessero essere parte del problema). Tuttavia, non risolve il mio problema. – meustrus

+1

Non ricordo perché questo non ha funzionato prima, dal momento che sembra funzionare ora come desiderato. – meustrus

2

se lo metti su l'elemento, l'elemento ottiene teso a max-width: 100%.

Se volete larghezza fissa, utilizzare width: 40px (anziché%, le percentuali sono utilizzati nei layout liquidi)

+0

... hai cambiato la risposta completamente rendendo insensato il mio commento precedente. Ora sembra che entrambi non capiate "max-width" o cosa sto cercando di fare. – meustrus

+0

oh ok. che cosa vuoi ottenere, i layout fissi devono avere specificato px. –

+0

Non è per un layout di pagina. Lo stesso layout di pagina consente alla larghezza della tabella di essere fluida (100%). L'elemento nella tabella è un campo di input che dovrebbe essere visualizzato alla sua larghezza nativa, ma se non c'è abbastanza spazio dovrebbe ridursi per adattarsi allo spazio disponibile. – meustrus

Problemi correlati