Réponse rapide pour la portée d'une seule ligne
Faire en sorte que l'enfant (dans ce cas un span) soit le même. line-height
comme parent <div>
de la hauteur
<div class="parent">
<span class="child">Yes mom, I did my homework lol</span>
</div>
Vous devez ensuite ajouter les règles CSS
.parent { height: 20px; }
.child { line-height: 20px; vertical-align: middle; }
Ou vous pouvez le cibler avec un sélecteur enfant
.parent { height: 20px; }
.parent > span { line-height: 20px; vertical-align: middle; }
Contexte de mon utilisation personnelle de cette
J'ai rencontré un problème similaire où j'avais besoin de centrer verticalement des éléments dans un menu mobile. J'ai fait en sorte que la div et les spans à l'intérieur aient la même hauteur de ligne. Notez que c'est pour un projet meteor et que je n'utilise donc pas de css en ligne ;)
HTML
<div class="international">
<span class="intlFlag">
{{flag}}
</span>
<span class="intlCurrent">
{{country}}
</span>
<span class="intlButton">
<i class="fa fa-globe"></i>
</span>
</div>
CSS (option pour les travées multiples dans un div)
.international {
height: 42px;
}
.international > span {
line-height: 42px;
}
Dans ce cas, si je n'avais qu'un seul span, j'aurais pu ajouter la règle CSS directement à ce span.
CSS (option pour un span spécifique)
.intlFlag { line-height: 42px; }
Voici comment il s'est affiché pour moi