- ベストアンサー
CSSでイメージを縦並びに表示する際のブロック要素について
- CSSを使ってイメージを縦並びに表示する際、ブロック要素にする必要があるのか疑問です。
- 初心者の方がイメージを縦に3つ並べて中央に配置する際、ブロック要素にする必要があるのか迷っています。
- また、イメージを中央に配置する際には領域全体を中央にすると考えるのが間違いなのかも不安です。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#1 Wizard_Zeroです。 ※正確には「ブロック要素」ではなく「ブロックレベル要素」でした。すみません。以降この表記で統一します。 中央揃えになったということは、<img>がブロックレベル要素化しているか、<img>の外側にあるブロックレベル要素(divやbody)にtext-align:centerがかかっているとしか思えないです。 ブロックレベル要素にしていない<img>に対してtext-alignを指定する意味はなにもありません。 ・<img>に限らず、すべてのインライン要素の水平位置は、その外側にあるブロックレベル要素の水平位置指定に依存する。 ・text-alignはブロックレベル要素(※)に対してのみ使用するスタイルでありインライン要素には使用できない(しても意味がない) ・display:blockはインライン要素をブロックレベル要素に変更する。 この3点をおさえておけば、display:blockの記述や<img>を<div>で囲む必要性がわかると思います。 ※ブロックレベル要素には<td>や<th>を含むとします。
その他の回答 (1)
- うぃず(@Wizard_Zero)
- ベストアンサー率69% (344/495)
text-alignはブロック要素にしか使えません。<img>自体はインライン要素なので、displayでブロック要素に変更し、text-alignが反映されるようにしているわけです。 > 中央に配置する時、あるページに「イメージをブロック要素にする」と書かれてたのですが、それは正しいのでしょうか? 正しいといえば正しいですが、個人的にインライン要素をブロック要素に置き換えるのは好きではないので、私なら <div style="text-align: center"><img~~~ /></div> としますね。 <div>を使った方法について、文法的におかしくはありませんが、それだと「3枚の絵」が中央そろえで並ぶだけです。イメージのあとに<br />を入れるか、すべてのイメージを<div>で囲むなどしてください。 <div id="center"> <img src="○○" width="200" height="200" alt="○○" /><br /> <img src="○○" width="200" height="200" alt="○○" /><br /> <img src="○○" width="200" height="200" alt="○○" /> </div> あるいは <div id="center"> <div><img src="○○" width="200" height="200" alt="○○" /></div> <div><img src="○○" width="200" height="200" alt="○○" /></div> <div><img src="○○" width="200" height="200" alt="○○" /></div> </div>
お礼
返事ありがとうございます。 そうですねw<div id="center">の部分のイメージの間空けるの忘れてました。すいません。 それと、<img>を要素変えずにtext-alignで中央に行くんですがこれはどういうことでしょうか?? 文法的なもので要素を変えなくてはいけないということで理解すればいいんでしょうか?
お礼
あっわかりましたっ。 <div>でセンターにしてたから中央に行ってました(゜ー゜;A <img>だけなら中央に行かないってそういうことだったんですね。 すごく勉強になりました。ありがとうございます。