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é

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.


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




-1

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


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.