3 つの要素を使用して、高さが不明な要素を垂直方向にセンタリングする実際の例があります。
<section>
<div>
<img src="http://placehold.it/100x100"/>
</div>
</section>
そしてCSS:
section {
display: table;
width: 100%;
height: 100%;
position: absolute;
text-align: center;
}
div {
display: table-cell;
vertical-align: middle;
}
ここにも JSFiddle の例があります: http://jsfiddle.net/Y6KS9/
ただし、可能であれば不要なラッパーの使用は避けたいと思います。たとえば、img 自体を table-cell として表示する:
div {
display: table;
width: 100%;
height: 100%;
position: absolute;
text-align: center;
}
img {
display: table-cell;
vertical-align: middle;
}
ただし、これは機能しません。http://jsfiddle.net/U2c9R/ の JSFiddle の例を参照してください。imgはdiv 内の中央に配置されていません。
2 つの要素のみを使用して、サイズが不明な画像を親内で垂直方向に中央揃えすることは可能ですか?
編集:私は Flexbox を認識しており、IE9 が終了したら、テーブル セルのハックを完全に破棄するつもりです。しかし、今は古いブラウザをサポートする必要があります。