私は次のhtmlを持っています:
<div class="container">
<img src="..."/>
<p>Heading</p>
</div>
私はこの動作が欲しい:
- 画像がない場合 (<img> タグがない場合)、p は .container のサイズを指定する必要があります。
- 画像はあるが、p の方が高い場合、.container は p と同じ高さにする必要があります。
- 画像の高さがより高い場合、.container は画像と同じ高さである必要があり、p は .container の下部から、その中のテキストの量に応じて上に「成長」する必要があります (position:absolute; bottom:0 のように、位置内で) :相対ボックス)。
- p には、要素を通して画像を部分的に見ることができるように、半透明の背景が必要です。透過性は問題ではありませんが、p が .container の全高を取得してからテキストの位置を変更するソリューションが必要ないため、これを含めます。
- IE8 で動作する必要があります (必要なブラウザーのみ)。
- 必要に応じて html 構造を自由に操作できますが、できるだけシンプルに保ちたいと考えています。
javascriptで簡単にできますが、純粋なCSSでできますか?
(このコードペンは、私がやろうとしていることを部分的に示しています: http://codepen.io/anon/pen/sqjnz )
明確にするために編集: .container を最も背の高い子 (img または p) と同じ高さにしたい。img と p の両方が存在する場合、テキストは画像の上にあり、.contianer の下部に固定されている必要があります。画像がない場合 (img タグが存在しない場合)、ボックスは通常の div のように動作し、p と同じサイズに展開する必要があります。