text-alignの使い方や効かないときの対処法

【当サイトはプロモーションを含みます】

画像

「text-align」プロパティは、CSSではかなりの頻度で使われるプロパティではないでしょうか。そのため、どんな値があるのかを知っておくと何かと便利です。

そして、このプロパティは使われる機会が多い分「思ったように配置されない・・・」となることも結構あるんですよね。

今回は「text-align」プロパティの解説や、指定したのに効かない原因・対処法について書いていきます。

目次

「text-align」プロパティについて

「text-align」プロパティは、テキスト等の水平方向の配置を決めるCSSのプロパティで「ブロック要素」に指定します。

値の種類

では、どんな値があるのか見ていきましょう。

1. start

まずは初期値である「start」から。

<div class="container">
  <div class="text">
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam vel tellus 
    sagittis, dapibus lacus a, volutpat risus.
  </div>
</div>
.text {
  font-size: 1.5rem;
  text-align: start;
}
説明画像

左から書くテキストなら「left」と同じ、右から書くテキストなら「right」と同じ表示になります。

この値は初期値なので「text-align」プロパティを記述しなくても同じ動きになります。

2. end

次は「end」です。

.text {
  font-size: 1.5rem;
  text-align: end;
}
説明画像

左から書くテキストなら「right」と同じ、右から書くテキストなら「left」と同じ表示になります。

3. left

次は「left」です。

.text {
  font-size: 1.5rem;
  text-align: left;
}
説明画像

要素が左端に寄ります。

4. right

次は「right」です。

.text {
  font-size: 1.5rem;
  text-align: right;
}
説明画像

要素が右端に寄ります。

5. center

次は「center」です。

.text {
  font-size: 1.5rem;
  text-align: center;
}
説明画像

要素が中央に寄ります。

6. justify

次は「justify」です。

.text {
  font-size: 1.5rem;
  text-align: justify;
}
説明画像

要素が両端揃えになります。テキストの場合は最終行以外が間隔が調整されて、行の両端が左右の端に広がります。

最終行も両端揃えにしたい場合は、「text-align-last: justify;」を追加で指定します。

.text {
  font-size: 1.5rem;
  text-align: justify;
  text-align-last: justify;
}
説明画像

最終行も含め両端揃えになりました。

7. match-parent

次は「match-parent」です。

.text {
  font-size: 1.5rem;
  text-align: match-parent;
}
説明画像

この値は、親要素の値を継承します。この記事の解説では親要素にはtext-alignを指定していないので、初期値である「start」が適用されて左揃えになっています。

以上、「text-align」プロパティで使用する値の解説でした。

text-alignが効かない原因と対処法

テキストや画像の水平方向の位置決めをするために「text-align」を指定したのに、これが効かないことがあります。

その原因と対処法を解説します。

原因:インライン要素に指定している

この記事の冒頭の「text-align」プロパティの説明でも書きましたが、このプロパティは「ブロック要素」に効きます。つまり「インライン要素」に指定しても効きません。

例を見てみましょう。

ブロック要素に指定した場合

まず、ブロック要素に「text-align: center;」を指定してみます。

<div class="container">
  <div class="text">テキスト</div>
</div>
.text {
  font-size: 2rem;
  text-align: center;
}
説明画像

ちゃんと要素が中央に配置されています。

インライン要素に指定した場合

次にインライン要素に「text-align: center:」を指定してみます。

<div class="container">
  <span class="text">テキスト</span>
</div>
.text {
  font-size: 2rem;
  text-align: center;
}
説明画像

指定した「text-align: center;」が効いていません。

では、インライン要素に効かせる方法を解説します。

対処法:ブロック要素で囲う

text-alignを効かせたいインライン要素をブロック要素で囲み、そのブロック要素にtext-alignを指定します。

<div class="container">
  <div class="outer"><span class="text">テキスト</span></div>
</div>
.outer {
  text-align: center;
}
.text {
  font-size: 2rem;
}
説明画像

「text-align: center;」が効いて、要素が中央に配置されました。

画像を挿入するときに使う「img」タグもインライン要素ですが、この方法で画像の水平位置を決めることが出来ます。

「text-align: justify;」が効かない理由

最後に、値「justify」をブロック要素に指定しているのに、両端揃えにならない場合の理由を解説します。

<div class="container">
  <div class="text">テキスト</div>
</div>
.text {
  font-size: 2rem;
  text-align: justify;
}
説明画像

「text-align: justify;」が効いていません。

これは、値の解説のところに「テキストの場合は最終行以外が間隔が調整されて、行の両端が左右の端に広がります」と書いていますが、テキストが1行の場合は、それが最終行と判断されて値の指定が効かないんですね。

なので、最終行も両端揃えにするために「text-align-last: justify;」を追加で指定したときと同様に対処すればOKです。ただし今回の場合はテキストが1行(最終行)だけなので「text-align: justify;」の部分は不要になり「text-align-last: justify;」と書くだけで大丈夫です。

.text {
  font-size: 2rem;
  text-align-last: justify;
}
説明画像

要素が両端揃えになりました。

まとめ

今回の内容をまとめます。

  • 「text-align」プロパティはテキスト等の水平方向の配置を決める
  • 「ブロック要素」に指定するもので「インライン要素」には効かない
  • 「インライン要素」に効かせたいときは「ブロック要素」で囲う
  • 値「justify」を使う際、テキストが1行の場合は最終行と判断されるので「text-align-last: justify;」と書く

「text-align」プロパティは、ポイントさえ押さえて使えば非常に便利なプロパティです。テキストや画像を自在に配置して、Webデザインの幅を広げていきましょう。

以上、「text-align」プロパティの解説でした!

⇒CSSについてもっと知りたいと思ったらこちら

目次