2011-01-11 19 views
22

Per quanto riguarda l'html, come faccio a far crescere un contenitore div con il contenuto anziché definire manualmente larghezza e altezza.Come far crescere un div con i contenuti?

Non importa ciò che le dimensioni del logo sono, il contenitore non cresce con essa: (... come vorrei risolvere il problema (o può essere fisso)

risposta

0

avete? codice di esempio? Un div sarà sempre l'intera larghezza del suo contenitore come un elemento block-level.

+0

Sono abbastanza sicuro che l'OP stava chiedendo, se l'elemento (div) A ha child (ren) B, come fare A diventa automaticamente abbastanza grande da avvolgere B. La tua risposta dice che B sarà la larghezza di A se è 'display: block'. – doug65536

23

Se non si definisce larghezza e/o altezza, l'elemento div cresce insieme al suo contenuto. A meno che il suo contenuto non sia impostato in assoluto! Se il contenuto è impostato su float, devi impostare il contenitore

overflow:hidden 

per farla crescere!

+0

Cosa fai se hai elementi impostati in assoluto all'interno del div e vuoi che si dimensionino automaticamente per racchiudere gli elementi assoluti? –

+0

E 'possibile specificare larghezza/altezza dell'elemento e quell'elemento cambia dinamicamente le dimensioni man mano che il contenuto cresce? – FrenkyB

+1

Incredibile come a volte può essere CSS intuitivo. Non. – cdonner

6

Il comportamento predefinito per div è quello di riempire l'intera larghezza disponibile. A pochi modi per ignorare questo:

  • set display: inline-block (non IE-friendly)
  • galleggiante che (con l'effetto collaterale di, beh, galleggiare)
  • set display: inline (ma questo è quasi mai quello che si vuole)
  • set position: absolute
  • hard-code una larghezza (no larghezza dinamica però)

Come ultima risorsa, consi der javascript.

0

È possibile specificare la larghezza minima e l'altezza minima e DIV regola la larghezza/altezza quando il contenuto cambia (ovviamente, non al di sotto della larghezza/altezza minima).

Working code pen example

Principali proprietà CSS dal codice (DIV è modificabile, quindi basta digitare il testo e crescerà con esso larghezza/altezza):

min-height: 200px; 
    min-width: 100px; 
2

Utilizzare la proprietà css magica chiamato "flex", è davvero sorprendente

yourDiv{ 
display:flex; 
} 

Basta fare in modo che i bambini non sono position: absolute, perché questo non funziona con flex.

+0

ha bisogno di più informazioni ... poiché la tua risposta è valida, non funziona con div nidificati di altezza variabile. –

+0

Ovviamente lo fa, lo uso tutti i giorni, a meno che i div non siano visualizzati in assoluto! – molham556

+0

che avrebbe potuto essere a portata di mano le informazioni da includere nella tua risposta ... così, "\t ha bisogno di più informazioni ... come la tua risposta sta non funziona ..." –

Problemi correlati