web-dev-qa-db-ja.com

テキストをボックスの下部に垂直に配置しますか?

ボックスを作成し、行の高さを設定すると、テキストは自動的に垂直方向の中央に配置されます。ボックスの下部にテキストを設定する方法やトリックはありますか?

div {
    width: 100px;
    height: 100px;
    background: #eee;
    color: #333;
    text-align: center;
    line-height: 100px;
    vertical-align: text-bottom;
 }

<div>FoxRox</div>
6
phoxd

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>

heightdivとテキストのline-heightを同じ値(この場合は100px)に設定することは、テキストを垂直方向に中央揃えにする方法です。 div。それが問題です。

解決策は、line-heightを高さの2倍からテキストのサイズを引いたものに変更し、不要なvertical-alignを削除することです。

15
Ana

テキストをpタグでdisplay:inline-blockで囲みます。 vertical-alignp要素に設定します。

<div>
    <p>FoxRox</p>
</div>​

div {
    width: 100px;
    height: 100px;
    background: #eee;
    color: #333;
    text-align: center;
 }
p {
    display: inline-block;
    vertical-align: -80px;
}
​

デモ

9
xbonez

表示をテーブルセルに設定できます。たとえば、このCSSを試してください。

width: 100px; 
height: 100px; 
display: table-cell; 
vertical-align: bottom;

デモ: http://jsfiddle.net/Kawwr/

5
walmik

https://stackoverflow.com/a/6116514/68248 に対する私の答えを確認できます。

上記の回答のデモです。


秘訣は、外部コンテナでdisplay: table-cellを使用することです。そうすれば、divでvertical-align: bottomdisplay: inline-block;を使用できます。

2
Code Maverick