Vous pouvez essayer cette approche de base:
#box {
height: 90px;
line-height: 90px;
}
Démo
Ne fonctionne que pour une seule ligne de texte si, parce que nous définir la ligne de hauteur à la même hauteur que la boîte contenant l'élément.
Une approche plus polyvalent
Et voici une autre façon d'aligner le texte verticalement, cette solution fonctionne pour une seule ligne et plusieurs lignes de texte, mais requiert tout de même une fixe en hauteur conteneur:
<div>
<span>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</span>
</div>
Le CSS juste des tailles de l' <div>
, puis verticalement centre aligne l' <span>
par réglage de l' <div>
's la hauteur de la ligne égale à sa hauteur, et de faire de l' <span>
un inline-block avec vertical-align: center
. Elle définit ensuite la hauteur de la ligne de retour à la normale pour l' <span>
de sorte que son contenu s'écoule naturellement à l'intérieur du bloc.
div {
width: 250px;
height: 100px;
line-height: 100px;
text-align: center;
}
span {
display: inline-block;
vertical-align: middle;
line-height: normal;
}
Démo
La simulation de tableau d'affichage
Et voici une autre option, qui peut ne pas fonctionner sur les anciens navigateurs qui ne supportent pas l' display: table
et display: table-cell
(en gros, cela signifie que Internet Explorer 7). Le HTML est le même que le deuxième exemple:
<div>
<span>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</span>
</div>
À l'aide de CSS, nous 'simuler' affichage de la table de comportement, étant donné que les tables de support d'alignement vertical:
div {
display: table;
width: 250px;
height: 100px;
text-align: center;
}
span {
display: table-cell;
vertical-align: middle;
}
Démo
À l'aide de positionnement absolu
Cette technique utilise un positionnement absolu de l'élément de réglage en haut, en bas, à gauche et à droite de 0. Il est décrit plus en détail dans un article sur Smashing Magazine.