私は最初、table/table-cell 表示方法を使用してテキストを垂直方向に中央揃えにしましたが、これはうまくいきました。問題は、コンテナーの高さのパーセンテージに切り替え、ブロック レベルの画像 (問題のテキストの兄弟) を使用してコンテナーのサイズを設定したときに発生しました。静的コンテナー サイズを宣言しないと、絶対配置テキストをコンテナーの高さと同じにすることはできなくなりました。明らかに、これは JS で簡単に解決できますが、私はその道をたどりたくありません。
また、画像を提供するためにpicturefill.jsを使用しているため、画像をcss背景として使用することはオプションではありません(誰かがそれを機能させるための提案がない限り)。
フィドルは次のとおりです。
コードは次のとおりです。
HTML
<div class="tile">
<a href="#">
<img src="#">
<div class="header-container">
<h2>title</h2>
</div>
</a>
</div>
CSS
.tile {
position: relative;
}
img {
display: block;
}
a {
display: block;
position: relative;
}
.header-container {
display: table;
height: 100%;
left: 0;
position: absolute;
top: 0;
width: 100%;
}
h2 {
display: table-cell;
text-align: center;
vertical-align: middle;
z-index: 199;
}