皆さんは、CSSで画面のテキスト・画像などの縦位置を指定する方法を知っていますか?文字の読みやすさ・画像の見やすさに直結するので、使い方を覚えておくと便利です!そこで今回は、
- CSSで縦位置を揃えるための、vartical-alignプロパティとは?
- vartical-alignプロパティの使い方
- vertical-alignプロパティが使えない例と対処方法について
- 文字の上下余白を設定するline-heightプロパティとは?
といったように、基礎的なことから応用的な方法まで、徹底的に解説します!
vertical-alignプロパティとは?
まず、vertical-alignプロパティについて簡単に解説します。vertical-alignプロパティとは、テキストの縦軸の位置を指定するためのプロパティです。
上端揃え・中央揃え・下端揃え以外にも、複数の設定方法があります。読みやすさ・使いやすさに直結するプロパティなので、使い方を覚えておくのがおすすめです!
vertical-alignプロパティの使い方
次に、vertical-alignプロパティの使い方について解説します。
vertical-alignプロパティの使い方:
vertical-align:設定値
設定値一覧:
| No | 値 | 意味 | 使用例 |
|---|---|---|---|
| 1 | top | 行の上端 | top |
| 2 | middle | 行の中央 | middle |
| 3 | bottom | 行の下端 | bottom |
| 4 | text-top | フォントの上端 | text-top |
| 5 | text-bottom | フォントの下端 | text-bottom |
| 6 | baseline | フォントの基準線 | baseline |
| 7 | 数値 + % | 指定した数値の位置 ・プラスの場合は基準線の上 ・マイナスの場合は基準線の下 | 20% , -30% |
| 8 | 数値 + 単位 | 指定した数値の位置 ・プラスの場合は基準線の上 ・マイナスの場合は基準線の下 | 10px , -0.2em |
ただこれだけだと、値ごとに表示される位置が、少しわかりにくいですよね。また、topとtext-topの違いや、baselineとmiddleの違いなども、分かりにくいと感じる方が多いと思います。
そこで、わかりやすく解説するための図を用意しました!
vertical-alignの値をわかりやすく解説した図:

上記を確認しつつ実際にCSSでvertical-alignプロパティを使ってみて、意図した結果にならないときのみ「数値 + %」または「数値 + 単位」で直接値を指定して、ちょうどいい位置に設定する流れがおすすめです!
vertical-alignプロパティのサンプルコード
次に、サンプルコードをもとに、具体的な書き方を解説します!
サンプルコード – HTML:
<!DOCTYPE html> <!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<title>vertical-alignサンプル</title>
<link rel="stylesheet" href="main.css" />
</head>
<body>
<h2>サンプルコード</h2>
<div class="main-contents">
<span class="font-samurai">侍エンジニア</span>
<span class="vertical-align-top">top</span>
<span class="vertical-align-middle">middle</span>
<span class="vertical-align-bottom">bottom</span>
<span class="vertical-align-text-top">text-top</span>
<span class="vertical-align-baseline">baseline</span>
<span class="vertical-align-text-bottom">text-bottom</span>
<span class="vertical-align-30per">30%</span>
<span class="vertical-align-20px">20px</span>
</div>
</body>
</html>
サンプルコード – CSS:
/* 文字全体に下線を引く */
span{
text-decoration:underline;
}
/* 文字のあるdivタグに上下線を引く */
.main-contents{
border-top:solid 1px black;
border-bottom:solid 1px black;
}
/*「侍エンジニア」の文字サイズを指定 */
.font-samurai{
font-size:50px;
}
/********** 以下でvertical-alignを設定 **********/
.vertical-align-top{
vertical-align:top;
font-size:25px;
background-color: orange
}
.vertical-align-middle{
vertical-align:middle;
font-size:25px;
background-color: aqua
}
.vertical-align-bottom{
vertical-align:bottom;
font-size:25px;
background-color: orange
}
.vertical-align-text-top{
vertical-align:text-top;
font-size:25px;
background-color: aqua
}
.vertical-align-baseline{
vertical-align:baseline;
font-size:25px;
background-color: orange
}
.vertical-align-text-bottom{
vertical-align:text-bottom;
font-size:25px;
background-color: aqua
}
.vertical-align-30per{
vertical-align:30%;
font-size:25px;
background-color: orange
}
.vertical-align-20px{
vertical-align:20px;
font-size:25px;
background-color: aqua
}
実行結果:

文字のサイズが同じの場合はtext-top、text-bottom、baselineなどに違いが出ないため、「侍エンジニア」の文字と、各設定値に適用した文字のフォントサイズを変えています。このように、簡単に文字の縦軸の位置を指定することができます。
慣れないうちは「background-color」等のプロパティを使って、サンプルのように背景色表示して確認しつつ、位置調整するとやりやすいのでおすすめです!
vertical-alignプロパティが使えない例と対処方法について
ここまで、vertical-alignプロパティの使い方を解説してきましたが、vertical-alignプロパティは、そのままではうまく動かないケースがあります。それが、ブロックレベル要素のタグにvertical-alignプロパティを設定してしまったときです。
先ほどのサンプルを、ブロックレベル要素のdivタグに置き換えたサンプルを用意しました。
サンプルコード – HTML
<!DOCTYPE html> <!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<title>vertical-alignサンプル</title>
<link rel="stylesheet" href="main.css" />
</head>
<body>
<h2>サンプルコ ード</h2>
<div class="main-contents">
<div class="font-samurai">侍エンジニア</div>
<div class="vertical-align-top">top</div>
<div class="vertical-align-middle">middle</div>
<div class="vertical-align-bottom">bottom</div>
<div class="vertical-align-text-top">text-top</div>
<div class="vertical-align-baseline">baseline</div>
<div class="vertical-align-text-bottom">text-bottom</div>
<div class="vertical-align-30per">30%</div>
<div class="vertical-align-20px">20px</div>
<div class="clear-both"></div>
</div>
</body>
</html>
サンプルコード – CSS
/* 文字のあるdivタグに上下線を引く */
.main-contents{
border-top:solid 1px black;
border-bottom:solid 1px black;
display:table-cell;
}
/*「侍エンジニア」の文字サイズを指定 */
.font-samurai{
font-size:50px;
float: left; /* 並べて表示するために追記 */
}
/********** 以下でvertical-alignを設定 **********/
.vertical-align-top{
vertical-align:top;
font-size:25px;
background-color: orange;
float: left; /* 並べて表示するために追記 */
}
.vertical-align-middle{
vertical-align:middle;
font-size:25px;
background-color: aqua;
float: left; /* 並べて表示するために追記 */
}
.vertical-align-bottom{
vertical-align:bottom;
font-size:25px;
background-color: orange;
float: left; /* 並べて表示するために追記 */
}
.vertical-align-text-top{
vertical-align:text-top;
font-size:25px;
background-color: aqua;
float: left; /* 並べて表示するために追記 */
}
.vertical-align-baseline{
vertical-align:baseline;
font-size:25px;
background-color: orange;
float: left; /* 並べて表示するために追記 */
}
.vertical-align-text-bottom{
vertical-align:text-bottom;
font-size:25px;
background-color: aqua;
float: left; /* 並べて表示するために追記 */
}
.vertical-align-30per{
vertical-align:30%;
font-size:25px;
background-color: orange;
float: left; /* 並べて表示するために追記 */
}
.vertical-align-20px{
vertical-align:20px;
font-size:25px;
background-color: aqua;
float: left; /* 並べて表示するために追記 */
}
.clear-both{
clear: both;
}
実行結果:

このように、divタグでは、正しくvertical-alignプロパティが動きません。
慣れるまでは難しいかもしれませんが、vertical-alignプロパティを設定して上手くいかなかった時は、ブロック要素になっていないか?を確認することを、頭の片隅に入れておくと良いかもしれません。
ちなみに、「ブロック要素ってなに!!!?」と思った方は、以下で詳しくまとめています!
左揃え・中央揃え・右揃えにする方法とは?
ここまで縦軸の位置を設定するためのvertical-alignプロパティについて解説してきましたが、文字の位置調整をする場合は、横軸に揃えたいときも多いですよね!
そのため、縦軸の位置を変えるvertical-alignプロパティだけでなく、横軸の位置を変えるtext-alignプロパティを合わせて覚えておくのがおすすめです!
text-alignプロパティを含めた、左揃え・中央揃え・右揃えにする方法について以下で徹底的にまとめているので、気になる方は見てみてくださいね!
まとめ
今回は、文字の縦軸の位置を設定するためのvertical-alignプロパティの使い方について解説してきました。冒頭でも話しましたが、文字の見やすさはアプリの使いやすさに直結します。
「神は細部に宿る」という格言にもありますが、細かいところだからこそ手を抜かないことが重要です。使い方も簡単なので、ぜひ使ってみてくださいね!






