ここでテーブルを使用することをお勧めしません)))要素をvertical-align: middle
設定した 2 セルのテーブルを使用するtd
と、問題が完全に (そして簡単に!!!) 解決されます。
2 つのコンテナが必要な場合、そのうちの 1 つ (画像のあるコンテナ) が右にフロートし、センタリングが必要になりますfloat
。これにはプロパティを使用しないようにする必要があります。a) 私が理解している限り、左側のコンテンツが画像の下にある必要はありませんよね? b) フロートはブロックレベルの要素であり、設定しても変更できませんdisplay: table-cell
。ブラウザーは引き続きそれをレンダリングしますdisplay: block
。これにより、css によって (少なくとも知っているという意味です)。
ie7 のサポートが必要ない場合、考えられる回避策は次のとおりです。
html:
<div id="container">
<div class="content">Content goes here, vertically aligned with the image</div>
<div class="i_used_to_be_floated_right">Image goes here</div>
</div>
CSS:
#container {
display: table;
width: 100%;
}
.content, .i_used_to_be_floated_right {
display: table-cell;
vertical-align: middle;
}
.content {
background: green;
width: 80%;
}
.i_used_to_be_floated_right{
background: red;
width: 20%;
}
実際の動作例は、ここで見ることができます: http://jsfiddle.net/skip405/sDXMj/1/
しかし、ie7 が必要な場合は、最初に述べたテーブル ソリューションに投票します。