2011-04-14 14 views
10

Tengo 2 divs que quiero centrar verticalmente dentro de otro div. Por el momento tengo:Centrado 2 Divs dentro de otro verticalmente

http://jsfiddle.net/5vpA3/1/

Ahora entiendo lo que está pasando aquí, pero quiero que el div izquierda a estar alineado verticalmente dentro de ese contenedor y el derecho div mismo. Pero se están alineando verticalmente como un par y no individualmente. He intentado varias cosas pero parece que no puedo hacer que funcione.

+0

¿Están fijadas altura o altura variable? –

+0

Todos ellos son de altura variable. Entonces, básicamente, el contenedor div tendrá la misma altura que el div interno más grande y el div más pequeño debería estar centrado verticalmente. Si es necesario, los divs pueden ser de altura fija, pero realmente no queremos establecer margin-top, etc. – anothershrubery

+0

Supongo por el uso de 'display: table-cell' que no te importa apoyar IE7 ? – thirtydot

Respuesta

17

Live Demo

  • Retire float: left de #left y #right.
  • su lugar, utilice display: inline-block:

    #left, #right { 
        display: inline-block; 
        vertical-align: middle; 
    } 
    
  • Debido a la utilización de display: inline-block, usted tiene que tratar con the whitespace issue. Elegí eliminar los espacios en blanco en el HTML entre </div> y <div id="right">. See here por lo que sucede si no haces eso. Eliminar el espacio en blanco realmente es la solución más fácil, pero there are other ways.
+0

Elegí explicar el problema del espacio en blanco 'en línea' tan a fondo en función de su [pregunta anterior] (http://stackoverflow.com/questions/5647365/images-have-gap-between-them). – thirtydot

+0

Saludos por la explicación. He intentado esta implementación en la página real de SharePoint y parece que no funciona, aunque puedo ver lo que debería hacer con tu violín. Es como si los divs estuvieran funcionando como bloques en lugar de bloques en línea. Consulte http://jsfiddle.net/5vpA3/24/ para ver cómo se ve en mi página. Las herramientas de desarrollo IE muestran que tiene display: inline-block, por lo que no veo el problema. – anothershrubery

+0

Al presionar F12 y abrir las Herramientas de desarrollo, ¿qué "Modo de documento" se está utilizando? – thirtydot

0

como esta?

Demostración: http://jsfiddle.net/5vpA3/25/

#container 
{ 
    background-color: #FFFF00; 
} 
#left 
{ 
    height: 150px; 
    color: #FFFFFF; 
    background-color: #0000FF; 
    width: 100px; 
    margin-left: auto; 
    margin-right: auto; 
    position: relative; 
    left: 0px; 
    top: 0px; 
} 
#right 
{ 
    height: 80px; 
    color: #FFFFFF; 
    background-color: #FF0000; 
    width: 100px; 
    margin-left: auto; 
    margin-right: auto; 
    position: relative; 
    left: 0px; 
    top: 0px; 
} 
+0

Vaya, lo hice, Horiz, es temprano, necesito cafeína: P – wdm

Cuestiones relacionadas