table-cell を使用した一方向
必要最小限のマークアップを想定すると、次のようになります。
<div class="wrap">
<div>Some content...</div>
</div>
次の CSS がそれを行います。
.wrap {
border: 1px solid red;
height: 200px;
width: 200px;
display: table-cell;
vertical-align: bottom;
}
主な利点: インライン要素とブロック レベル要素の両方で機能します。
短所: 古いブラウザでは認識されないdisplay: table-cell
デモ: http://jsfiddle.net/audetwebdesign/eXKbt/
インラインブロックを使用する別の方法
次の CSS を適用することで、このようにすることもできます。
.wrap2 {
border: 1px solid red;
height: 200px;
width: 200px;
}
.wrap2:before {
content: "";
width: 0;
height: 190px;
display: inline-block;
}
.wrap2 div {
display: inline-block;
width: 190px;
border: 1px dotted red;
vertical-align: bottom;
}
ただし、このアプローチでは、疑似要素を使用して架空のインライン ブロックを定義し、ベースラインをボックスのほぼ完全な高さに設定してから、子要素で垂直方向の位置合わせを使用していました。幅に関連するいくつかの問題がありましたが、動作させることができます。
デモについては、以前のフィドルを参照してください。