CSS vertical-alignの使い方テキスト縦方向の位置変更向の位置を変更する方法を紹介!

本記事は広告が含まれる場合があります CSS

【CSS vertical-alignの使い方】テキストの縦・上下方向の位置変更

今回は行内やセル内の縦方向の位置を変更することができるCSSプロパティ、vertical-alignの使い方やよく使用される値を紹介します。

<div>行<span style="vertical-align: baseline;">baseline</span></div>
div { font-size: 50px; background-color: #ccc; }
span { font-size: 12px; background-color: #ffccff; }

baselineを指定している例

<div>行<span style="vertical-align: top;">top</span></div>

vertical-align: topを指定している例

<div>行x<span style="vertical-align: middle;">middle</span></div>

vertical-align: middleを指定している例

<div>行<span style="vertical-align: bottom;">bottom</span></div>

vertical-align: bottomを指定している例

<div>行<span style="vertical-align: text-top;">text-top</span></div>

vertical-align: text-topを指定している例

<div>行<span style="vertical-align: text-bottom;">text-bottom</span></div>

vertical-align: text-bottomを指定している例

<div>行x<span style="vertical-align: 13px;">日本語や全角英字の中央に配置</span></div>

日本語文字や全角文字の中央に要素を配置したい場合は、「数値 + 単位」の方法で指定すると良い

 

 

 

vertical-alignプロパティとは?

vertical-alignは、インライン(テキスト、画像など)要素、インラインブロック要素の垂直方向の位置指定に指定するCSSです。

高さの異なるインライン画像とテキストを横一列に並べた時、両者の揃え位置を指定したい場合などに、vertical-alignプロパティが使用されます。

vertical-alignを使用してインライン画像とテキストの揃え位置を指定している
 

なお、vertical-alignプロパティを適用できるのは、インライン(インラインブロック)要素とテーブルセルのみで、ブロックレベル要素には適用できません。
 

■vertical-alignの使用場面

  • インライン要素の中で、テキストや画像などの垂直方向の位置を決めるとき
  • テーブルセルの中身の垂直方向の配置を決めるとき

 

 

vertical-alignプロパティでよく使用される値一覧

つぎにvertical-alignでよく使用する値を紹介していきます。

vertical-align:baseline(初期値) 適用した要素のベースラインと親要素のベースラインを揃える
vertical-align:top 要素と子孫要素の上端を行全体の上端に揃える
vertical-align:middle 半角英字の「x」の中央の高さに要素が揃う
vertical-align:bottom 要素と子孫要素の下端を行全体の下端に揃える
vertical-align:text-top 親要素のフォントの上端に要素の上端を揃える
vertical-align:text-bottom 親要素のフォントの下端に要素の下端を揃える
vertical-align:数値+単位 数値と単位(px、%など)を使って位置の調整をすることができる

vertcal-alignプロパティで指定できる値の表示例

 

1. baseline(初期値):適用した要素のベースラインと親要素のベースラインを揃える

まず1つ目の値は、baselineです。

こちらの値は指定することで、適用した要素のベースラインと親要素のベースラインを揃えることができます。

<div>行<span style="vertical-align: baseline;">baseline</span></div>
div {
  font-size: 50px;
  background-color: #ccc;
}

span {
  font-size: 12px;
  background-color: #ffccff;
}

baselineを指定している例

ブロックレベル要素(divタグ)に対して、vertical-alignを設定するわけではないので注意しましょう。

なおベースラインとは、アルファベットの大文字の底辺が接する直線のことを言います。

ベースラインを解説した図

引用元:Baseline (typography) | WIKIPEDIA

 

2. top:要素と子孫要素の上端を行全体の上端に揃える

2つ目の値は、topです。

こちらの値は指定することで、要素と子孫要素の上端を行全体の上端に揃えることができます。

<div>行<span style="vertical-align: top;">top</span></div>
/* 他省略 */

vertical-align: topを指定している例

 

3. middle:半角英字の「x」の中央の高さに要素が揃う

3つ目の値は、middleです。

こちらの値は指定することで、半角英字の「x」の中央の高さに要素が揃うようになります。

<div>行x<span style="vertical-align: middle;">middle</span></div>
/* 他省略 */

vertical-align: middleを指定している例

vertical-align: middleを指定している例

 

4. bottom:要素と子孫要素の下端を行全体の下端に揃える

4つ目の値は、bottomです。

こちらの値は指定することで、要素と子孫要素の下端を行全体の下端に揃えることができます。

<div>行<span style="vertical-align: bottom;">bottom</span></div>

vertical-align: bottomを指定している例

 

5. text-top:親要素のフォントの上端に要素の上端を揃える

5つ目の値は、text-topです。

こちらの値は指定することで、親要素のフォントの上端に要素の上端を揃えることができます。

<div>行<span style="vertical-align: text-top;">text-top</span></div>

vertical-align: text-topを指定している例

 

6. text-bottom:親要素のフォントの下端に要素の下端を揃える

6つ目の値は、text-bottomです。

こちらの値を指定することで、親要素のフォントの下端に要素の下端を揃えることができます。

<div>行<span style="vertical-align: text-bottom;">text-bottom</span></div>

vertical-align: text-bottomを指定している例

 

7. 数値+単位:数値と単位(px、%など)を使って位置の調整をする

7つ目の値は、「数値+単位」です。

こちらの値を指定することで、具体的な数値と単位(px、%など)を使って位置の調整をしてあげることができます。

前述したように、「vertical-align: middle;」を指定した場合、半角英字の「x」の中央の高さに要素が揃うようになるため、日本語文字や全角文字の中央に要素を配置することはできません。

そこで日本語文字や全角文字の中央に要素を配置したい場合は、pxなどの単位を使った方法で指定してあげると良いです。

<div>行x<span style="vertical-align: 13px;">日本語や全角英字の中央に配置</span></div>

日本語文字や全角文字の中央に要素を配置したい場合は、「数値 + 単位」の方法で指定すると良い

こうしてあげることでベースラインを0として、正の値なら上方向、負の値なら下方向に要素を移動させることができます。

 

 

vertical-alignが効かないよくある理由

vertical-alignは「指定がうまく効かない」となりやすいプロパティの1つです。

よくあるのが下記のようなレイアウトでブロック要素同士で、ボックスの中の上下中央寄せ目的で使用している場合です。
vertical-alignを使ってボックスの中で要素を上下中央寄せにすることはできない

このようなレイアウトの場合は、vertical-alginではなく、paddingpositionを利用するか、display:flex;align-items:center;など別のプロパティで調整してあげると良いでしょう。

関連CSS 内部余白paddingタグの使い方
関連CSS positionで位置指定する方法・位置調整の使い方
関連【CSS display:flex】フレックスボックスの使い方

 

■vertical-alignが効かないよくある理由

  • ブロック要素に対して指定している
  • ボックスの中での上下中央寄せ目的で使用している

 

ブロック要素に対して指定している

まず1つ目は、ブロック要素に対して指定していないかどうかを確認しましょう。

vertical-alignプロパティはインライン(インラインブロック)要素とテーブルセルに対してのみ適用可能で、ブロックレベル要素には使用できません。

<div class="box">
  <p style="background-color: #fff;vertical-align: middle;">vertical-alignの失敗例1</p>
</div>
.box{
  width: 300px;
  height: 200px;
  padding: 10px;
  background-color: pink;
  text-align: center;
}

 

vertical-alignが効いていない例
 

そのため、上のようにpタグに「vertical-align: middle」を指定しても指定が通りません。
 

ボックスの中での上下中央寄せ目的で使用している

2つ目は、ボックスの中での上下中央寄せ目的などで使用していないかを確認しましょう。

ここが1番勘違いをされやすい点だと思うのですが、vertical-alignはインライン(インラインブロック)要素同士の位置関係を調整するためのプロパティであって、ボックスの中での上下の配置を指定するためのプロパティではありません

■vertical-alignの正しい使用例

<span>インラインブロック1</span>
<a href="#">インラインブロック2</a>
<span>インラインブロック3</span>
span {
  background-color: aqua;
  display: inline-block;
  line-height: 60px;
}

a{
  background-color: pink;
  display: inline-block;
  line-height: 40px;
  vertical-align: middle;
}

 

vertical-alignの正しい使用例
 

テーブルセルの中ではvertical-alignの設定が可能

なお、テーブルセルの中では「vertical-align: middle」の指定で上下中央寄せ、「top」「bottom」で上寄せ、下寄せにすることが可能です。

<table>
  <tr>
    <th>ここはth要素です</th>
    <td>ここはtd要素です</td>
  </tr>
  <tr>
    <th>ここはth要素です</th>
    <td>ここはtd要素です</td>
  </tr>
</table>
table,
th,
td {
  border: 1px solid #333;
}

table {
  width: 1000px;
  height: 200px;
}

th {
  vertical-align: top;
}

td {
  vertical-align: bottom;
}

テーブルセルに対してvertical-alignプロパティを指定している例

 

 

まとめ

まとめです。今回はCSSプロパティの1つ、vertical-alignの使い方や使用できる値について紹介しました。

vertical-alignを使用してインライン画像とテキストの揃え位置を指定している

テキストやアイコン画像の垂直方向の位置を調整したり、テーブルセルの垂直方向の配置を指定したいときなどにするので覚えておきましょう。

今回は以上になります。最後までご覧頂き、ありがとうございました。


 

「業者に任せたけど、更新ができない」「本で独学は時間がかかりすぎる・・」そんなお悩みの方も多いのではないでしょうか。

個別指導形式のスクールでは、自分の知りたいことをピンポイントで学習・達成でき、自分で更新もできるというメリットもあります。

教室の無料事前相談もしておりますので、まずはお気軽にご登録ください。

詳細はこちら

YouTubeチャンネル開設しました!

WEBST8 YouTube Channel 開設
最大月間50万PVの当ブログをベースに、Youtube動画配信にてWordPress、ホームページ作成、ブログのことについてお役立ち情報を随時配信していきます。

ご興味ある方はぜひチャンネル登録をしていただけますと幸いです。

検索して記事を見つける

探したいキーワードを入力・検索して記事を見つけたい方はこちら

-CSS