CSS・見た目をもっと自由に

文字を中央や右にそろえる

見出しを真ん中に、日付を右に。text-alignひとつで文字のそろえ方を変えて、ページのバランスを整えよう。

文章はふつう、左からはじまります。でも、見出しは真ん中に置いたほうが映えるし、日付や署名は右にそろえると収まりがよい。この文字のそろえ方をあやつるのが text-align です。

書いてみよう

h1 {
  text-align: center;
}

これで見出しが中央ぞろえになります。値を入れ替えれば、そろえる方向が変わります。

  • text-align: left; … 左にそろえる(ふつうはこれ)
  • text-align: center; … 中央にそろえる
  • text-align: right; … 右にそろえる

見出しは center、そえ書きや日付は right——といった具合に、役割で使い分けると、ページに落ち着きが出ます。

3つの値を並べてみると、文字の寄る位置の違いがはっきりします。

箱の幅は3つとも同じ。動いているのは、あくまで箱の中の文字の位置だけです。

もう1つの値:justify

leftcenterrightのほかに、justifyという値もあります。行の両端をそろえる指定で、新聞や書籍でよく見る組み方です。

p {
  text-align: justify;
}

行の右端がぴったりそろう代わり、文字と文字のすき間が行ごとに微妙に伸び縮みします。見た目が気になるときは、無理に使わずleftのままにしておくのも立派な選択です。

同じ文章を、ふつうの左そろえとjustifyで並べてみると、右端のそろい方の違いが見えてきます。

上がふつうの左そろえ、下がjustify。下の箱は、行の右端がぴったりそろっているのが分かります。

このレッスンのまとめ

  1. 文字のそろえ方は text-align
  2. leftcenterrightjustify の4つから選ぶ
  3. そろうのは箱の中の文字(箱そのものではない)

やってみよう:れんらくの中身を中央にそろえる

「れんらく」の<section>に、class="contact"を足しましょう(class="card contact"のように、クラスは2つ並べてつけられます)。

<section id="contact" class="card contact">
  ...
</section>
.contact {
  text-align: center;
}

.cardはそのまま、.contactを追加でつけただけ。1つの要素に複数のクラスをスペース区切りでつけられることも、ここで覚えておきましょう。

ブラウザ表示。「れんらく」のカードの中身が、見出しごと中央にそろって表示されている
れんらくの見出しと中身が、まとまって真ん中に寄りました。

よくある質問

画像もtext-alignで中央に寄せられるの?
小さな画像なら寄ります。imgは文字と同じ「インライン」の仲間として扱われるため、親にtext-align: centerを指定すると、中の画像も文字と同じように中央へ寄ります。
上下方向の中央寄せもtext-alignでできる?
できません。text-alignがそろえるのは左右方向だけです。上下の中央寄せは、Flexboxのalign-itemsなど別の道具のしごとになります。