¿Cómo alinear un div a la parte superior de su padre pero manteniendo su comportamiento de bloqueo en línea?

171

Ver: http://jsfiddle.net/b2BpB/1/

P: ¿Cómo puede hacer que box1 y box3 se alineen con la parte superior del div padre boxContainer?

#boxContainerContainer {
  background: #fdd;
  text-align: center;
}

#boxContainer {
  display: inline-block;
  border: thick dotted #060;
  margin: 0px auto 10px auto;
  text-align: left;
}

#box1 {
  width: 50px;
  height: 50px;
  background: #999;
  display: inline-block;
}

#box2 {
  width: 50px;
  height: 100px;
  background: #999;
  display: inline-block;
}

#box3 {
  width: 50px;
  height: 50px;
  background: #999;
  display: inline-block;
}

Ayuda muy apreciada ...

Reconocimiento: esta pregunta se bifurca a partir de una respuesta dada anteriormente por https://stackoverflow.com/users/20578/paul-d-waite : Obtener un elemento CSS para cambiar automáticamente el tamaño del ancho del contenido y al mismo tiempo estar centrado

tur130
fuente

Respuestas:

378

Prueba la vertical-alignpropiedad CSS.

#box1 {
    width: 50px;
    height: 50px;
    background: #999;
    display: inline-block;
    vertical-align: top; /* here */
}

Aplícalo #box3también.

rinoceronte
fuente
3
Si desea una solución universal, que debe aplicar el vertical-align: top;al #boxContainer divselector. Aplica el estilo a todos los divelementos dentro del boxContainer.
MarthyM
30

Como han dicho otros, vertical-align: topes tu amigo.

Como beneficio adicional, aquí hay un violín bifurcado con mejoras adicionales que lo hacen funcionar en Internet Explorer 6 e Internet Explorer 7 también;)

Ejemplo: aquí

clairesuzy
fuente
6

Puede agregar flotante: izquierda; para cada una de las cajas (caja1, caja2, caja3).

http://jsfiddle.net/Wa4ma/

Alex Emilov
fuente
Como este mejor que la alineación vertical +1
Jurgen
¿Por qué demonios funciona esto? Me gusta, pero también me gustaría entenderlo.
Kevin Bullaughey
-1

O simplemente podría agregar algo de contenido al div y usar inline-table

Robert fue
fuente
¿Por qué agregar una tabla cuando puede usar la alineación vertical?
tcoulson
1
@tcoulson No dije que usara una tabla, dije que puede usar display: inline-table, que hace 3 años tenía un mejor soporte para el navegador y facilitaba la alineación vertical.
Robert fue el