css を使用して垂直方向に配置する方法について、さまざまな提案を見つけました。しかし、どれも私が望んでいたものを処理できませんでした。ここに私が欲しいものがあります:
一般に、スペースの左半分を埋めるテキストと、スペースの右半分を占める画像があります。
テキストの高さが画像よりも小さい場合、テキストと画像の両方がスペースの上部に垂直に配置される必要があります。
TextTextText PicturePicture
TextTextText PicturePicture
PicturePicture
テキストの高さが画像の高さよりも大きい場合は、テキストを垂直方向に上に配置し、画像をテキストに対して中央に配置する必要があります。
TextTextText
TextTextText PicturePicture
TextTextText PicturePicture
TextTextText PicturePicture
TextTextText
これが私が試した簡単な方法の1つです(画像なしのテキストバージョン):
<div style="width: 100%">
<div style="width: 50%; display: inline-block; vertical-align: top;">
TextTextText <br>
TextTextText <br>
TextTextText
</div><div style="width: 50%; display: inline-block; vertical-align: middle;">
PicturePicture <br>
PicturePicture
</div>
</div>
しかし、意図した効果は得られませんでした。右内側の div (画像) は、テキストに対して中央ではなく、上に配置されています。vertical-align: middle
設定と に違いはありませんvertical-align: top
。ただし、興味深いことに、設定vertical-align: bottom
によって違いが生じます。
外側の div は、特定の幅の他の要素に含まれています。ただし、この幅を固定単位 (px など) で指定することはできません。同じ幅の 2 つの内側の div についても同じです。
内側の div テーブル セルを作成すると、適切な垂直効果が得られます。ただし、display: table-cell
右の内側の div にはPicturePicturePicturePicturePicture...
. これは、左のセルの幅を縮小することにつながりますが、これは望ましくありません。
さらに、コンテンツの高さがわからないため、固定高さを使用する垂直方向の配置のトリックはどれも機能しません。
それほど珍しい作業ではないように思えましたが、解決策を見つけることができませんでした。これを行うことは可能ですか?