私はこの質問が死ぬように求められたことを知っていますが、検索しても何もうまくいきませんでした。
あなたは契約を知っています、私はテキストを垂直方向に揃える必要があるdiv要素を持っていますが、何もうまくいきませんでした(position:absolute; top:50%; margin-top:-x; display:table-cell; vertical-align:middle ;など)
これが私が作業しているものです(インラインCSSで申し訳ありません)。とにかく、私は行の高さを使用しますが、テキストは1行または2行にすることができます。常に最大高さが30px(30x50)の画像と垂直に整列する必要があります。
<div style="margin:0 0 10px 0;padding:10px;border:2px solid #606060;background-color:#2b2b2b;-webkit-border-radius:8px;-moz-border-radius:8px;border-radius:8px;">
<div style="float:left;width:55px;height:40px;">
<a href="link"><img style="max-width:50px;border:1px solid #ffb92c;" src="image.jpg" alt="" /></a>
</div>
<div style="float:right;width:155px;font-size:0.7em;height:40px;">
<a href="link">This is the text to vertically align</a>
</div>
</div>
アイデアは here からのものであり、すべてのブラウザで機能するはずです。
<div style="margin: 0 0 10px 0; padding: 10px; border: 2px solid #606060; background-color: #2b2b2b;
-webkit-border-radius: 8px; -moz-border-radius: 8px; border-radius: 8px;">
<div style="float: left; width: 55px; height: 40px;">
<a href="link">
<img style="max-width: 50px; border: 1px solid #ffb92c;" src="image.jpg"
alt="" /></a>
</div>
<div style="float: right; width: 155px; font-size: 0.7em; height: 40px; display: table; #position: relative; overflow: hidden;">
<div style="#position: absolute; #top: 50%; display: table-cell; vertical-align: middle;">
<div style="#position: relative; #top: -50%;">
<a href="link">This is the text to vertically align</a>
</div>
</div>
</div>
<div style="clear: both"></div>
</div>
あなたができるもう一つのこと。 div内のテキストが1行だけの場合は、line-height
を使用できます
例
div {
line-height:40px;
}
あなたはこのようにする必要があります:
http://jsfiddle.net/rathoreahsan/5u9HY/
メインdivでpadding
の代わりにfixed height
を使用します。左右のDivの行の高さを使用する
ここにソリューションのクリーンバージョンがあります
<div style="background: yellow">
<div style="width: 155px; font-size: 0.7em; height: 40px; display: table; overflow: hidden;">
<div style="display: table-cell; vertical-align: middle;">
<div style="">
<a href="link">This is the text to vertically align</a>
</div>
</div>
</div>
<div style="clear: both"></div>
clearfix で修正できる一般的なフロートの問題のようです。または、次のコードスニペットで行ったように、ラッパーの高さが固定されています。
私もline-height
フローティングdivを追加し、少し幅を広くしました。
これをみて:
<div style="margin:0 0 10px 0;padding:10px;border:2px solid #606060;background-color:#2b2b2b;-webkit-border-radius:8px;-moz-border-radius:8px;border-radius:8px;height:40px"> <div style="float:left;width:55px;height:40px;"> <a href="link"><img style="max-width:50px;border:1px solid #ffb92c;" src="image.jpg" alt="" /></a> </div> <div style="float:right;width:185px;font-size:0.7em;height:40px;line-height:40px"> <a href="link">This is the text to vertically align</a> </div> </div>
非常に長いテキストの数行のみを表示する必要がありますか、これが Fiddle です。必要に応じて高さを調整してください。
.container-text {
height:40px;
width:180px;
overflow-y:hidden;
display:table-cell;
vertical-align:middle;
text-align: center;
}