画像のサイズと正確に一致する無地のオーバーレイを作成し、そのオーバーレイにテキストを表示しようとしています。可能であれば、HTML と CSS のみでこれを行いたいと考えています。
画像は任意のサイズにすることができ、親コンテナー内に収まるようにサイズ変更され、中央に配置されます。このようなもの(機能しません):
HTML:
<div class="img-overlay">
<img src="file.jpg">
<div class="overlay">Text will flow...</div>
</div>
CSS:
.img-overlay img {
margin: 0 auto;
max-height: 100%;
}
.overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%
background-color: rgba(255,255,255,0.5);
}
ここでは HTML5 の<figure>
タグが役立つのではないかと考えましたが、その面ではあまり成功していません。次の例では、キャプションの幅を画像の幅に固定したままにしていますが、ドキュメント フローからキャプションを削除して画像の上に配置しようとすると、画像が中央に配置されているため、画像の左側に配置されてしまいmargin: 0 auto;
ます。
<figure>
<img src="file.jpg">
<figcaption>Text will flow...</figcaption>
</figure>