• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:文章を、画像の縦方向の位置の中心に置きたい)

画像の縦方向の位置の中心に文章を配置する方法

このQ&Aのポイント
  • CSSを使ってwebページのレイアウトをしています。画像の高さの真ん中あたりに、文章を配置したいのですが、方法を教えてください。
  • 「vertical-align:middle;」で指定してみたら1行の文ではうまく行ったのですが、複数行になるとうまくいきません。どうすれば、複数行の文章で上手く指定できるでしょうか。
  • 以下がソースコードです。div要素の中にtextとimgの要素があります。img要素に対してvertical-align: middle;を指定してみましたが、複数行の文に対してはうまくいかないようです。

質問者が選んだベストアンサー

  • ベストアンサー
noname#19175
noname#19175
回答No.1

<img>はインライン要素ですので、テキスト同様、1つの画像で1行と見なされますので、段組表示にする必要があります。 paddingやmarginでも特定の環境であれば表示は出来ますが、 ブラウザの文字サイズを変更すれば中央ではなくなりますし、 たぶんこのレイアウトは、テーブルでなければ出来ないと思いますが、 1つのセルが画像だけの場合は、画像未対応かつテーブル未対応ブラウザでは ALT=""を指定するとそのセル(テーブル)は消滅しますので、ユーザビリティーは問題ないと思います。 (CSSでできるという方がいらっしゃいましたら、後学のためにも是非教えて頂きたいです) td { vertical-align:middle; } <table><tbody> <tr> <td>画像の名前<br>画像についての解説</td> <td><img src="image.jpg" alt=""></td> </tr> </tbody></table> ALTを指定したり、 CSS未対応ブラウザ(の、テーブル対応ブラウザ)では、右側に画像を置くのではなく、テキストの下に置きたいという場合は、テーブルは使用できませんので、 中央表示ではなく、上段表示にしなければならないと思います。(vertical-align未指定と同じ位置)

grandsky
質問者

お礼

回答ありがとうございます。 なかなか難しいんですねぇ。 実はWeb標準の勉強をするためにCSSの勉強をしています。だから、出来ればテーブルを使いたくないと思いまして、この質問をしてみました。 でもとりあえず、No.1さんの案を試してみてからまた考えます。自宅のパソコンにこのhtmlファイルがないので(^_^;)月曜日になってしまいますが…。 あと、何かの偶然でこれをご覧の皆様! No.1さんも仰っているように、もしCSSで出来るという方がいらっしゃいましたら、お願いします!!

grandsky
質問者

補足

そろそろ質問を締め切りたいと思います。 >No.1さん 結局、暫定的にテーブルを使用するという形でレイアウトをしました。 ご回答ありがとうございました!

関連するQ&A