プロが教えるわが家の防犯対策術!

CSSの質問です。
.imgs imgが真ん中に表示されません。
どうしてでしょうか・・・?

.imgs {
height: 160px;
width: 160px;
position:relative;
}
.imgs img {
position:absolute;
vertical-align:middle;
}
よろしくお願いします。

A 回答 (3件)

>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>

とすると、縦横でセンタリングします。
    • good
    • 0

忘れてた。

添付画像はLynxで確認したもの

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

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

お礼日時:2011/11/11 11:17

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. … )
※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>
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/11/11 11:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!