CSS alignement vertical et de la base de la position

Je suis nouveau sur le CSS et récemment la lecture de la spécification et des problèmes dans la compréhension de l'vertical-align propriété.

<div style="border: 1px solid black;">
<span style="border: 1px solid red; padding-left: 1px; line-height: 30px;"></span>
<span style="border: 1px solid red; padding-left: 1px;"></span>
<span style="border: 1px solid red; padding-left: 1px; line-height: 40px;"></span>
</div>

<div style="border: 1px solid black;">
<span style="border: 1px solid red; padding-left: 1px; line-height: 30px;"></span>
<span style="border: 1px solid red; padding-left: 1px;"></span>
<span style="border: 1px solid red; padding-left: 1px; line-height: 40px; vertical-align: top"></span>
</div>

<div style="border: 1px solid black;">
<span style="border: 1px solid red; padding-left: 1px; line-height: 30px; vertical-align: bottom"></span>
<span style="border: 1px solid red; padding-left: 1px;"></span>
<span style="border: 1px solid red; padding-left: 1px; line-height: 40px; vertical-align: top"></span>
</div>

Code ci-dessus crée 3 div, chacun d'entre eux contient 3 vide inline boîtes (travées):

  1. Dans la 1re division, tout semble aller bien. Tous les 3 travées sont alignés sur la ligne de base de la boîte de ligne.
  2. Dans le 2ème div, après j'ai mis le vertical-align propriété top pour la 3e travée, les deux premières travées sont déplacés vers le haut. Et je me suis perdu à partir d'ici, je ne comprends pas pourquoi ils seront déplacés, selon quelle règle.
  3. La 3ème div est encore plus câblé pour moi. J'ai mis le vertical-align propriété bottom pour la 1ère travée, et cela provoque de la 2e travée déplacer légèrement inférieur de la 3e travée (ce sera remarqué quand un zoom assez).

La chose que je peux trouver dans la spécification dit ci-dessous, mais quels sont exactement les multiple solutions? Quelqu'un pourrait-il nous éclairer sur ce point?

In case they are aligned 'top' or 'bottom', they must be aligned so as to minimize the line box height. If such boxes are tall enough, there are multiple solutions and CSS 2.1 does not define the position of the line box's baseline.

J'ai également créé un violon. S'il vous plaît exécuter dans Firefox ou google Chrome si vous êtes intéressé.

InformationsquelleAutor Yuan Li | 2013-12-20