CSSで画像を縦横中央に表示させる


いつも忘れるシリーズ

いっつもやり方忘れて過去のソースを見返すコレ、
「CSSで画像を縦横中央に表示させる」方法。

ポイントはdisplay:table-cellを使うわけですが、
なぜかいつも間違えるのでここに明記!

縦横200pxのdiv要素の中に、
縦または横が180pxの画像を縦横中央に配置したい場合、

↓これだとダメ!ききません!


<div class="item">
  <img src="hoge">
</div>

.item {
  width: 200px;
  height:200px;
  display:table;
}
.item img {
  text-align:center;
  display:table-cell;
  vertical-align:middle;
  max-width: 180px;
  max-height:180px;
}

 

↓こっちが正解。


<div class="item">
  <div class="item_img">
    <img src="hoge">
  </div>
</div>

.item {
  width: 200px;
  height:200px;
  display:table;
}
.item_img {
  text-align:center;
  display:table-cell;
  vertical-align:middle;
}
.item img {
  max-width: 180px;
  max-height:180px;
}

・imgタグの親要素に対してdisplay:table-cell;
・さらにその親要素に対してdisplay:table;
です。

後は、imgタグの親要素に
・横位置中央配置のtext-align:center;
・縦位置中央配置のvertical-align:middle;
を書いてあげればOK。

ふう、、、display:table;なんてコレのときしか使ったことないからな~。
まぁ、もうこれ書いたから忘れないでしょう~。

たぶんね、、、。


Add a Comment

メールアドレスが公開されることはありません。

CAPTCHA


This blog is kept spam free by WP-SpamFree.