img タグを使用する必要があり、背景画像で div を台無しにしたくない場合は、次の方法を試すことができます。
http://jsfiddle.net/Nz6Nm/3/
.container
{
width: 180px;
height: 180px;
background-color: #FF0000;
line-height: 180px;
font-size: 0;
text-align: center;
}
.container img {
vertical-align: middle;
}
font-size は、変な間隔を避けるために 0 に設定されています。line-height をコンテナーの高さと同じにすると、少なくとも画像の場合、vertical-align が垂直方向の中央として機能します。
これの利点は、画像を img タグに入れることができることです。これは、背景画像よりも意味的に喜ばしいものです。この方法は、コンテナーのサイズがわかっているが、その内側に配置したい画像のサイズが不明な場合に機能します。
編集: 別のフィドルへのリンクは次のとおりです: http://jsfiddle.net/Nz6Nm/4/
画像の上にテキストを配置する必要があるかもしれないとおっしゃっていたので、簡単な方法を示したかっただけです。このようにして、上部に 20px を追加します。180 x 180 に固執する必要がある場合は、ロジックを調整して適合させることができます。</p>