- ベストアンサー
スマフォサイトの横並び画像について
- スマフォサイトで横並びの画像を親ブロック要素に収めて表示させる方法について教えてください。
- 画像メニューの中に異なる幅の画像を適切に表示する方法について知りたいです。
- スマフォサイトで画像メニューを作成する際に、画面サイズに応じて画像を拡大縮小させる方法を教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
IMG要素は、行内要素です。 →ブロックレベル要素と行内要素 ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/global.html#h-7.5.3 ) さらに置換要素と言って置き換えられる画像のサイズによって伸縮します。 →置換インライン要素の場合(Inline, replaced elements) →Intrinsic dimensions - 内在寸法 ( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2/conform.html#intrinsic ) よってスタイルシートでサイズを指定すると、画像のサイズになってしまいます。 そこで、画像要素(デフォルトはdisplay:inline)を、displayにてblock要素などに変更すればよいと言うことですね。 <ul> <li><a href="#"><img src="../images/gazo1.png"></a></li> <li><a href="#"><img src="../images/gazo1.png"></a></li> <li><a href="#"><img src="../images/gazo1.png"></a></li> ~省略 </ul> の場合、 ul,ul li{display:block;position:relative;} ul{width:80%;margin:0 auto;} ul li{width:30%;height:auto;background-color:yellow;} ul li+li{width:40%;margin-left:1%;} ul li+li+li{width:28%;} とかで、親コンテナブロックのそれぞれ30%,40%,28%になります。余白は二つ目のli以降は1%あきます。 それじゃまずいのですか?
補足
ご回答ありがとうございます! お教え頂いた方法をヒントに 以下のようにやってみて、なんとか問題なく表示することができました。 画像メニューがぴったりと横並びに表示されている感じです。 やはり、パーセンテージで指定するしかないのでしょうか。 小数点まで指定しないと縦幅がずれてしまいます。。 あまりいい方法ではなさそうなので 他に方法があればお教え頂けたら幸いです。 どうもありがとうございました!! .navi { text-align: center; overflow: hidden; padding: 5px 6px 10px; } .navi ul { margin:0 auto; width: 100%; text-align: center; } .navi li { margin: 0px; padding: 0px; display: block; float: left; } .navi ul li{width:23.6%;} .navi ul li+li{width:19.5%;} .navi ul li+li+li{width:21.4%;} .navi ul li+li+li+li{width:18.9%;} .navi ul li+li+li+li+li{width:16.8%;}