- ベストアンサー
CSSで画像を中央に配置する方法
- CSSを使用して、liの枠内の画像を上下左右中央に配置する方法について解説します。
- 画像のサイズがまちまちな場合、paddingなどで数値を指定することはできません。代わりに他の方法を使用する必要があります。
- vertical-align: middleは効果がありませんが、text-align: centerを使用することで、画像を左右の中央に配置することができます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
意外と厄介な方法で、文書構造を無視してHTMLをマークアップすれば出来なくはないですが、邪道ですので、極力そのリストであるマークアップを変更しない方法です。 ただし、古いブラウザには利きません。 <div class="book_slide"> _<ul> __<li><img src="images/book1.jpg" width="30" height="50" alt="*" /></li> __<li><img src="images/book2.jpg" width="54" height="32" alt="*" /></li> __<li><img src="images/book3.jpg" width="60" height="48" alt="*" /></li> __<li><img src="images/book4.jpg" width="48" height="33" alt="*" /></li> _</ul> <div> の場合CSSは div.book_slide{display:table;} div.book_slide ul{display:table-row;} div.book_slide ul li{display:table-cell;height:360px;width:500px;border:1px solid #000;text-align:center;vertical-align:middle;list-style:none;} display:tableがなくてもOKなので <ul class="book_slide"> __<li><img src="images/book1.jpg" width="30" height="50" alt="*" /></li> __<li><img src="images/book2.jpg" width="54" height="32" alt="*" /></li> __<li><img src="images/book3.jpg" width="60" height="48" alt="*" /></li> __<li><img src="images/book4.jpg" width="48" height="33" alt="*" /></li> </ul> と、 ul.book_slide{display:table-row;} ul.book_slide li{display:table-cell;height:360px;width:500px;border:1px solid #000;text-align:center;vertical-align:middle;} でもOKです。 ウェブ標準な方法なら、上のいずれかかで、画像でないテキストの場合も中央に配置されます。 一方、画像を背景で指定する方法もあります。こちらだと古いブラウザやテキストブラウザなどを考えると良いかもしれません。 <ul class="book_slide"> __<li><span>書名</span></li> __<li style="background-image:url(images/book2.jpg);"><span>書名</span></li> __<li style="backfround-image:url(images/book3.jpg);"><span>書名</span></li> __<li style="background-image:url(images/book4.jpg);"><span>書名</span></li> </ul> に対して ul.book_slide,ul,book_slide li{display:block;list-style:none;} ul.book_slide li{ _float:left;height:114px;width:80px;border:1px solid #000; _background:url(images/book1.jpg) 50% 50% no-repeat; } ul.book_slide li span{visibility:hidden;}
その他の回答 (1)
>簡単な問題です。 なんで自分はできないくせに簡単とか判断できたの? ↓はい参考。 http://www.webbibo.com/blog/htmlcss/vertical.html Googleでは「css 上下中央」でいくらでもヒットするから次からはこんな「簡単な問題」はまずググってね。