ボックスを作成し、行の高さを設定すると、テキストは自動的に垂直方向の中央に配置されます。ボックスの下部にテキストを設定する方法やトリックはありますか?
div {
width: 100px;
height: 100px;
background: #eee;
color: #333;
text-align: center;
line-height: 100px;
vertical-align: text-bottom;
}
<div>FoxRox</div>
2020アップデート
CSSグリッド、flexbox、またはline-height
を使用した元のメソッドを使用できます:
body { display: flex } /* just to prettify */
div {
margin: .5em;
width: 6.25em; height: 6.25em;
background: #eee;
color: #333;
text-align: center
}
.grid {
display: grid;
align-content: end;
}
.flex {
display: flex;
align-items: flex-end;
justify-content: center
}
.lh { line-height: 11.5 /* 6.25*2 - 1.5 */ }
<div class='grid'>Hello</div>
<div class='flex'>Hello</div>
<div class='lh'>Hello</div>
height
のdiv
とテキストのline-height
を同じ値(この場合は100px
)に設定することは、テキストを垂直方向に中央揃えにする方法です。 div
。それが問題です。
解決策は、line-height
を高さの2倍からテキストのサイズを引いたものに変更し、不要なvertical-align
を削除することです。
テキストをp
タグでdisplay:inline-block
で囲みます。 vertical-align
をp
要素に設定します。
<div>
<p>FoxRox</p>
</div>
div {
width: 100px;
height: 100px;
background: #eee;
color: #333;
text-align: center;
}
p {
display: inline-block;
vertical-align: -80px;
}
表示をテーブルセルに設定できます。たとえば、このCSSを試してください。
width: 100px;
height: 100px;
display: table-cell;
vertical-align: bottom;
https://stackoverflow.com/a/6116514/68248 に対する私の答えを確認できます。
上記の回答のデモです。
秘訣は、外部コンテナでdisplay: table-cell
を使用することです。そうすれば、divでvertical-align: bottom
とdisplay: inline-block;
を使用できます。