2011-01-11 154 views
22

En relación con html, ¿cómo hago que un contenedor div crezca con el contenido en lugar de definir manualmente el ancho y el alto?¿Cómo hacer que un div crezca con el contenido?

No importa lo que las dimensiones del logotipo son, contenedor no crece con ella: (... ¿cómo iba a solucionar este problema (o ¿Puede ser fijo)

Respuesta

0

¿Tiene? código de muestra? Un div siempre será el ancho completo de su contenedor como su elemento block-level.

+0

Estoy bastante seguro de que OP estaba preguntando, si el elemento (div) A tiene hijos B, cómo hacer que A sea automáticamente lo suficientemente grande como para envolver B. Su respuesta dice que B tendrá el ancho de A si es 'display: block'. – doug65536

23

Si no define ancho y/o alto, el elemento div crece junto con su contenido. A menos que su contenido esté establecido a absoluto! Si el contenido está configurado para flotar, tiene que establecer en el contenedor

overflow:hidden 

para dejar que crezca!

+0

¿Qué debe hacer si tiene elementos establecidos en absoluto dentro del div y desea que sean de tamaño automático para incluir los elementos absolutos? –

+0

¿Es posible especificar el ancho/alto del elemento y ese elemento cambia dinámicamente de tamaño a medida que crece su contenido? – FrenkyB

+1

Increíble lo intuitivo que a veces CSS puede ser. No. – cdonner

6

El comportamiento predeterminado para divs es llenar todo el ancho disponible. Algunas maneras para anular esto:

  • conjunto display: inline-block (no IE-amigable)
  • flotador (con el efecto secundario de, bueno, flotar)
  • conjunto display: inline (pero eso es casi nunca lo que quiere)
  • conjunto position: absolute
  • codificar una anchura (sin embargo dinámico ancho)

Como último recurso, consi der javascript.

0

Puede especificar min-width y min-height y DIV ajustará el ancho/alto a medida que cambia el contenido (por supuesto, no debajo de min width/height).

Working code pen example

más importantes propiedades CSS desde el código (DIV es editable, por lo que sólo tiene que escribir el texto y que crecerá con él por el ancho/alto):

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

Use la propiedad CSS mágica llamado "flex", que es realmente sorprendente

yourDiv{ 
display:flex; 
} 

Sólo asegúrese de que los niños no son position: absolute porque esto no va a funcionar con la flexión.

+0

necesita más información ... como su respuesta es que no funciona con divs anidados de altura variable. –

+0

Por supuesto que sí, lo uso todos los días, ¡a menos que los div se muestren de forma absoluta! – molham556

+0

que podría haber sido información útil para incluir en su respuesta ... entonces, "\t necesita más información ... como su respuesta es que no funciona ..." –

Cuestiones relacionadas