Comment aligner un div sur le haut de son parent tout en conservant son comportement de bloc en ligne?

171

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

Q: Comment pouvez-vous aligner box1 et box3 sur le haut du div parent 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;
}

Aide très appréciée ...

Remerciements: Cette question est dérivée d'une réponse précédemment donnée par https://stackoverflow.com/users/20578/paul-d-waite : Obtenir un élément CSS pour redimensionner automatiquement à la largeur du contenu, et en même temps être centré

tur130
la source

Réponses:

378

Essayez la vertical-alignpropriété CSS.

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

Appliquez-le #box3aussi.

rhinocéros
la source
3
Si vous voulez une solution universelle, vous devez appliquer le sélecteur vertical-align: top;to #boxContainer div. Il applique le style à tous les divéléments à l'intérieur du boxContainer.
MarthyM
30

Comme d'autres l'ont dit, vertical-align: topc'est votre ami.

En prime, voici un violon fourchu avec des améliorations supplémentaires qui le permettent également de fonctionner dans Internet Explorer 6 et Internet Explorer 7;)

Exemple: ici

clairesuzy
la source
6

Vous pouvez ajouter float: left; pour chacune des cases (case1, case2, case3).

http://jsfiddle.net/Wa4ma/

Alex Emilov
la source
Comme celui-ci mieux que l'alignement vertical +1
Jurgen
Pourquoi diable cela fonctionne-t-il? J'aime ça, mais j'aimerais aussi le comprendre.
Kevin Bullaughey
-1

Ou vous pouvez simplement ajouter du contenu au div et utiliser une table en ligne

Robert est allé
la source
pourquoi ajouter une table lorsque vous pouvez utiliser l'alignement vertical?
tcoulson
1
@tcoulson Je n'ai pas dit utiliser une table, j'ai dit que vous pouvez utiliser display: inline-table, qui, il y a 3 ans, avait un meilleur support du navigateur et facilitait l'alignement vertical.
Robert est allé le