- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:文章を、画像の縦方向の位置の中心に置きたい)
画像の縦方向の位置の中心に文章を配置する方法
このQ&Aのポイント
- CSSを使ってwebページのレイアウトをしています。画像の高さの真ん中あたりに、文章を配置したいのですが、方法を教えてください。
- 「vertical-align:middle;」で指定してみたら1行の文ではうまく行ったのですが、複数行になるとうまくいきません。どうすれば、複数行の文章で上手く指定できるでしょうか。
- 以下がソースコードです。div要素の中にtextとimgの要素があります。img要素に対してvertical-align: middle;を指定してみましたが、複数行の文に対してはうまくいかないようです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
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未指定と同じ位置)
お礼
回答ありがとうございます。 なかなか難しいんですねぇ。 実はWeb標準の勉強をするためにCSSの勉強をしています。だから、出来ればテーブルを使いたくないと思いまして、この質問をしてみました。 でもとりあえず、No.1さんの案を試してみてからまた考えます。自宅のパソコンにこのhtmlファイルがないので(^_^;)月曜日になってしまいますが…。 あと、何かの偶然でこれをご覧の皆様! No.1さんも仰っているように、もしCSSで出来るという方がいらっしゃいましたら、お願いします!!
補足
そろそろ質問を締め切りたいと思います。 >No.1さん 結局、暫定的にテーブルを使用するという形でレイアウトをしました。 ご回答ありがとうございました!