• ベストアンサー

★CSS★親ボックスの中で子ボックスを真ん中に。

CSSの質問です。 .imgs imgが真ん中に表示されません。 どうしてでしょうか・・・? .imgs { height: 160px; width: 160px; position:relative; } .imgs img { position:absolute; vertical-align:middle; } よろしくお願いします。

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

>vertical-align:middle; は、テーブルのセルにしか通用しませんよ それ以前にもし有効だとしてもalign指定するのはその親要素にでしょう? 今回のケースではあまり推奨されませんが、display:table-cell をつかってみるとか・・・ <style> .imgs { display:table-cell; height: 160px; width: 160px; background-Color:red; text-align:center; vertical-align:middle; } </style> <div class="imgs"> <img src="1.jpg"> </div> とすると、縦横でセンタリングします。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.3

忘れてた。添付画像はLynxで確認したもの なお、質問で「親ボックスの中で子ボックスを真ん中に。 」と書かれていますが、imag要素はブロックではありません。行内要素です。  display:block; と指定しなおしても、中央配置はややこしくなるので、親要素をtableに、子要素をtable-cellにするか、背景で指定するのが良いでしょう。  いずれがよいかは、HTMLの文書構造で決めてください。

a-----n
質問者

お礼

たびたびご丁寧にありがとうございます。 助かりました。

すると、全ての回答が全文表示されます。
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

HTMLがどのように書かれているかわからないのですが、 vertical-alignは、table-cellにのみ有効なプロパティです。 したがって、画像を縦巾の中央に配置するなら、 1)親コンテナブロックをtable-cellにする 2)親ブロック内で画像を画像サイズに合わせてひとつずつ位置を指定する。  親要素をrelativeにしてabsoluteで配置するのが簡単 3)背景画像として指定する。 下記は、(1)と(3)のサンプルです。いずれもLynxでは同じに見えます。≒検索エンジンでは同じに読み取ってくれます。 ※Another HTML-lint gateway( http://openlab.ring.gr.jp/k16/htmllint/htmllint.html ) ※The W3C Markup Validation Service( http://validator.w3.org/#validate_by_input ) で検証済み。 ★タブは_に置換してあります。戻して確認してください。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html lang="ja"> <head> _<meta http-equiv="content-type" content="text/html; charset=Shift_JIS"> _<title>サンプル</title> _<meta name="author" content="ORUKA1951"> _<meta http-equiv="Content-Style-Type" content="text/css"> _<link rev="made" href="mailto:oruka1951@hoge.com" title="send a mail" > _<link rel="START" href="../index.html"> _<style type="text/css"> <!-- div.album ol,div.album ol li{ _display:block;list-style:none; _margin:0;padding:0; _border-spacing:10px; } div.album ol li{ _width:100px;height:100px; _border:solid 1px blue; _text-align:center; } div.type1 ol li{ _display:table-cell; _vertical-align:middle; } div.type2 ol li{ _float:left; } div.type2 ol li{ _background-position:50% 50%; _background-repeat:no-repeat; _margin:5px; } div.type2 ol li span{ _display:none; } --> _</style> </head> <body> _<h1>サンプル</h1> _<div class="album type1"> __<ol> ___<li><img src="./images/thumbnail/RIMG0002.jpg" width="80" height="68" alt="フセ"></li> ___<li><img src="./images/thumbnail/RIMG0016.jpg" width="80" height="51" alt="タテ"></li> ___<li><img src="./images/thumbnail/RIMG0021.jpg" width="80" height="50" alt="コイ"></li> ___<li><img src="./images/thumbnail/RIMG0024.jpg" width="80" height="48" alt="ツケ"></li> __</ol> _</div> _<div class="album type2"> __<ol> ___<li style="background-image:url(./images/thumbnail/RIMG0002.jpg)"><span>フセ</span></li> ___<li style="background-image:url(./images/thumbnail/RIMG0016.jpg)"><span>タテ</span></li> ___<li style="background-image:url(./images/thumbnail/RIMG0021.jpg)"><span>コイ</span></li> ___<li style="background-image:url(./images/thumbnail/RIMG0024.jpg)"><span>ツケ</span></li> __</ol> _</div> </body> </html>

a-----n
質問者

お礼

ご丁寧にありがとうございます。 お手数をおかけしました。 勉強になりました。 ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A