2010-12-15 32 views
10

Quiero centrar un div en el medio de mi página, y hacer que el div se ajuste al contenido. ¿Cómo puedo hacer eso?¿Contenido del centro div y fit?


He intentado

width: 1px; 
white-space: nowrap; 
margin: 0 auto; 

que centra el div, pero entonces todo el texto está a la derecha de ello.

display: inline-block hace que el div se ajusta el contenido, pero no parece funcionar margin: 0 auto; ...

+2

Bueno, si lo hace 'inline-block' entonces usted tiene que establecer' text-align : center' en su padre para centrarlo ... –

+0

@Sime: Debería haber publicado esto como una respuesta .... Te daría la marca de verificación. Edit: Oh ... lo hizo;) – mpen

Respuesta

13

hace este trabajo para usted: http://vidasp.net/tinydemos/inline-centered-div.html

body { text-align:center; } 
div { display:inline-block; } 
+0

Eso hace que todo en la página se centre. – Blindy

+0

@Blindy Es solo una demostración. En la página, el OP tiene que definir text-align: center en el elemento padre del DIV (que no será el elemento BODY en su caso). –

+0

Sí, sí lo hace. Aunque voy a envolverlo en un div adicional y poner el 'text-align: center' en ese lugar, y luego solo tengo que poner' text-align: left' en el div interno. – mpen

0

El texto está a la derecha, debido a la anchura: 1px. Establecer un ancho más grande.

+0

... sí, entiendo * why *, pero "establecer un ancho más grande" no cumple con el requisito de "ajustar contenido". – mpen

0

La única manera de hacer esto, javascript soluciones a un lado, es darle una anchura y ajustar sus márgenes izquierdo y derecho para auto:

<div style="margin-left:auto;margin-right:auto;width=80%">...</div> 

Todas las otras soluciones se hace un lío el texto interior.

+0

Quiero ajustar el contenido, no un% de ancho. – mpen

3

Normalmente, si desea centrar un texto, que haría uso de un recipiente que se extiende por el contenedor en el que está centrado y establecer text-align: center;.

CSS:

#container { 
    text-align: center; 
} 

HTML: mi texto

Si quieres un recipiente que está dimensionado en todo el texto, a los efectos de un fondo de color o de la frontera, palo en otro recipiente interior.

CSS:

#container { 
    text-align: center; 
} 

#inner_div { 
    display: inline; 
    /*other styles here*/ 
} 

HTML:

<div id="container"> 
    <div id="inner_div">my text</div> 
</div> 
0

Trate display: table;

div { 
    display: table; 
    margin: 0 auto; 
} 
Cuestiones relacionadas