Webサイトのテキストの配置を調節するには、CSSプロパティ「text-align」が主に利用されるため、使用方法をしっかりマスターしておきたいところです。
本記事ではtext-alignの使い方や、うまく効かないときの対処法を紹介します。最後までお読みいただきますと、text-alignを使ってテキストを思い通りに配置できるようになりますので、ぜひ参考にしてみてくださいね。
- text-alignの使い方
- text-alignが効かないときの対処法
text-align: justify;
の使い方
無料でプログラミングの質問ができるサービス
30日間無料でWeb制作が学べるZeroPlus Gate!
- Web制作に特化
- 50本以上の動画教材で学べる
- 30日間に4回の学習サポート面談がある
- Slackで質問し放題
目次
text-alignの使用方法を紹介
この章では、CSSプロパティ「text-align」の使用方法を紹介します。
text-alignの基本的な使い方
text-alignは「表示形式がブロックの親要素」に指定して、「表示形式がインラインの子要素」の配置を調節するのが基本の使い方です。主に指定される値には、以下の3種類があります。
値 | 指定内容 |
center | テキストを真ん中寄せにする |
left | テキストを左寄せにする |
right | テキストを右寄せにする |
サンプルコードを基にして、text-alignの基本的な使い方を紹介します。
<div class="parent center">
<span> text-align: center;でテキストを真ん中にします。</span>
</div>
<div class="parent left">
<span>text-align: left;でテキストを左寄せにします。</span>
</div>
<div class="parent right">
<span>text-align: right;でテキストを右寄せにします。</span>
</div>
.parent {
border: 1px solid #ccc;
margin: 10px;
padding: 10px;
width: 80%;
height: 300px;
font-size: 30px;
}
.center {
text-align: center;/*テキストを真ん中寄せに*/
}
.left {
text-align: left;/*テキストを左寄せに*/
}
.right {
text-align: right;/*テキストを右寄せに*/
}
表示結果
上記のコードでは親要素「div」にtext-alignを指定して、子要素「span」の配置を調節しています。このように親要素に指定して子要素の配置をコントロールするのが、text-alignの基本的な使い方です。
なお、text-alignをしっかり理解するためには、ブロックやインラインなど「要素の表示形式」の理解が欠かせません。もしこれらの理解にあまり自信がない場合、先に以下の記事の内容を理解するのもおすすめです。
【CSS】inline・block・inline-blockの違いとは?使い分け方を初心者向けに解説 | ZeroPlus Media
pタグにはtext-alignを直接指定して配置を調節できる
text-alignは、親要素に効かせて子要素の配置を調節するのが基本的な使い方です。しかし、段落を表す「pタグ」を付けたテキストについては、親要素を使わずに直接text-alignを指定して配置を調節できます。
<p class="center">text-align: center; でテキストを真ん中にします。</p>
<p class="left">text-align: left;でテキストを左寄せします。</p>
<p class="right">text-align: right;でテキストを右寄せします。</p>
p {
border: 1px solid #ccc;
margin: 10px;
padding: 10px;
width: 80%;
height: 300px;
font-size: 30px;
}
.center {
text-align: center;/*テキストを真ん中寄せに*/
}
.left {
text-align: left;/*テキストを左寄せに*/
}
.right {
text-align: right;/*テキストを右寄せに*/
}
表示結果
このようにpタグには直接text-alignを指定して、テキストの配置を調節できます。一方で、spanタグやaタグなど表示形式がインラインの要素に直接text-alignを指定しても、配置を変更できません。
<span class="right">text-align: right;をspanタグに指定します。</span>
span{
border: 1px solid #ccc;
width: 80%;
font-size: 30px;
}
.right {
text-align: right;
}
表示結果
spanタグ内のテキストは右寄せにできませんでした。pタグとspanタグでは要素の構造が異なるため、text-alignを指定したときに違いが生じます。
pタグは表示形式がブロックであり、いわば外箱の中にテキストが内包されているような構造です。そのため以下のように、text-align: right;
を指定すれば外箱の右端にテキストを配置できます。
一方、spanタグのように表示形式がインラインの要素には、単にtext-align: right;
を指定するのみでは、テキストの配置を変更できません。
なぜなら、下の図のようにインラインの場合「テキストの表示領域 = 要素のサイズ」だからです。pタグのように、テキストの外側に箱のような領域は存在しません。
このようにspanタグはpタグのように外側に領域を持たず、text-alignを指定しても配置を調整できません。配置を変更するには、spanタグの表示形式を変更する必要があります。
text-align: right;
に加え、display: block;
を追加で指定して、spanタグの表示形式をブロックに変更することで、右寄せできます。
<span class="right">text-align: right;をspanタグに指定します。</span>
span{
border: 1px solid #ccc;
width: 80%;
font-size: 30px;
}
.right {
text-align: right;/*テキストを右寄せに*/
display: block;/*追加*/
}
表示結果
以下のようにspanの表示形式を、インラインからブロックに変更すれば、text-alignを効かせられるようになります。
text-alignを使えば画像の配置も調節できる
text-alignはその名の通り、テキスト要素のみの配置を指定できるプロパティと思われるかもしれませんが、実は画像の配置も調節できます。基本の使い方は「img」を親要素「div」で囲って、「div」にtext-alignを指定する方法です。
<div class="center">
<img src="./img/kikyu.jpg" alt="中央揃えの画像">
<p>この画像は中央揃えです。</p>
</div>
<div class="left">
<img src="./img/kikyu.jpg" alt="左揃えの画像">
<p>この画像は左揃えです。</p>
</div>
<div class="right">
<img src="./img/kikyu.jpg" alt="右揃えの画像">
<p>この画像は右揃えです。</p>
</div>
.center {
text-align: center;
margin: 20px 0;
}
.left {
text-align: left;
margin: 20px 0;
}
.right {
text-align: right;
margin: 20px 0;
}
img{
width: 20%;
}
表示結果
このように、text-alignを使って画像の配置も調節できます。
text-alignを使ってtable内のテキストの水平位置を調節する
text-alignをtable自体やtableの親要素に指定することで、表のテキストの水平位置も調節できます。
サンプルコードをご覧ください。
<div class="center">
<p>この表は中央揃えです。</p>
<table>
<tr>
<th>項目</th>
<th>値</th>
</tr>
<tr>
<td>中央揃え</td>
<td>データ1</td>
</tr>
</table>
</div>
<div class="left">
<p>この表は左揃えです。</p>
<table>
<tr>
<th>項目</th>
<th>値</th>
</tr>
<tr>
<td>左揃え</td>
<td>データ2</td>
</tr>
</table>
</div>
<div class="right">
<p>この表は右揃えです。</p>
<table>
<tr>
<th>項目</th>
<th>値</th>
</tr>
<tr>
<td>右揃え</td>
<td>データ3</td>
</tr>
</table>
</div>
table {
border-collapse: collapse;
width: 80%; /* テーブルの幅を指定 */
height: 150px;
border: 1px solid #ccc;
}
th, td {
border: 1px solid #ccc;
padding: 8px;
}
.center {
text-align: center; /* 親要素でテーブルを中央揃え */
}
.left {
text-align: left; /* 親要素でテーブルを左揃え */
}
.right {
text-align: right; /* 親要素でテーブルを右揃え */
}
p{
text-align: left;
font-size: 24px;
font-weight: bold;
}
表示結果
上記のコードではtableの親要素「div」にtext-alignを指定して、table内のテキストの水平位置を調節しています。thやtdに直接text-alignをかけて、テーブル内の要素に個別の配置を指定することもできます。
text-alignが効かない原因と対処方法
この章では、text-alignが効かない原因や対処法について紹介します。
1.表示形式がインラインの要素に直接指定している
text-alignは「表示形式がブロックの親要素に指定して、内側にある表示形式がインラインの子要素の配置を調節する」のが基本的な使い方です。以下のように、aタグやspanタグなど、表示形式がインラインの要素にtext-alignを直接指定しても、テキストの配置を調節できません。
<span class="right">text-align: right;をspanタグに指定します。</span>
span{
border: 1px solid #ccc;
width: 80%;
}
.right {
text-align: right;
}
表示結果
このようにspanタグのテキストは右寄せにはできません。
対処方法
この場合の対処方法は2つあります。
対処方法①外側を表示形式がブロックの要素で囲う
外側をdivで囲ってtext-alignを指定すれば、spanタグの配置を変更できます。
<div class="right">
<span>text-align: right;をspanタグに指定します。</span>
</div>
.right {
text-align: right;
border: 1px solid #ccc;
width: 80%;
font-size: 30px;
}
表示結果
これは「表示形式がブロックの要素に効かせて、インラインの要素の配置を調節する」最も基本的なtext-alignの使用方法です。
対処方法②display: block;を指定する
spanタグにdisplay: block;
を指定して表示形式をインラインからブロックに変更すれば、text-alignが効かせられるようになります。
<span class="right">text-align: right;をspanタグに指定します。</span>
span{
border: 1px solid #ccc;
width: 80%;
}
.right {
text-align: right;/*テキストを右寄せに*/
display: block;/*追加*/
}
表示結果
このように表示形式を変更する方法も、text-alignを効かせる方法の一つです。
画像に直接text-alignを指定している
spanタグのテキスト同様、画像を示すimgタグも表示形式がインラインのため、text-alignを直接指定しても配置を調節できません。
<img src="./img/kikyu.jpg" alt="中央揃えの画像" class="center">
.center {
text-align: center;
margin: 20px 0;
}
img{
width: 20%;
}
表示結果
このようにtext-align: center;をimgタグへ直接指定しても、画像は真ん中寄せになりません。
<img src="./img/kikyu.jpg" alt="中央揃えの画像" class="center">
.center {
text-align: center;
display: block;
margin: 20px 0;
}
spanタグと同じ感覚で、imgタグにdisplay: block;
を指定してブロック要素に変更しても、spanタグやaタグのようにtext-alignは効きません。
これには理由があります。
spanタグにdisplay: block;
を指定する場合、外箱の中にテキストが内包されるような構造になります。そのため箱の中でテキストの配置を指定できます。これに対しimgタグにdisplay: block;
を指定する場合、画像が要素の領域いっぱいに広がるため、配置を調節できません。
以下にspanタグとimgタグの違いをまとめます。
このようにimgタグにdisplay: block;
を指定すると、画像が要素の領域いっぱいに広がるため、配置を変更できません。
対処方法
この場合の対処方法は2つあります。
対処方法①外側を表示形式がブロックの要素で囲う
imgの外側をdivで囲ってtext-alignを指定すれば、画像の配置を変更できます。
<div class="center">
<img src="./img/kikyu.jpg" alt="中央揃えの画像" >
</div>
.center {
text-align: center;
margin: 20px 0;
}
表示結果
対処方法② 表示形式をブロックにしてmarginで調整する
marginを使って余白を調整し、画像の配置を指定する方法もあります。ポイントは以下のとおりです。
- imgに
display: block;
を指定する - imgにwidthを指定する
- 真ん中寄せにする場合は
margin: 0 auto;
を指定する - 右寄せにする場合は
margin-left: auto;
を指定する
margin: auto;
を指定すると、余白を自動計算して左右のバランスを取りながら要素の配置が決まります。
ただしimgにwidthを指定しない場合、要素の幅が親要素全体に広がり余白が生じなくなるため、marginで配置を調節できません。よってpxや%で、widthをはっきり指定する必要があります。
サンプルコードをご覧ください。
<img src="./img/kikyu.jpg" alt="気球の画像(真ん中寄せ)" class="center">
<img src="./img/sky-diving.jpg" alt="スカイダイビングの画像(右寄せ)" class="right" >
img{
width: 20%;/*widthを忘れず指定*/
display: block;
}
.center {
margin: 0 auto;/*真ん中寄せ*/
}
.right{
margin-left: auto;/*右寄せ*/
}
表示結果
【ステップアップ編】text-align: justify;の使い方
この章ではステップアップ編として、テキストを両端揃えにできる指定text-align: justify;
の使い方を解説します。
<div>
<p>ZeroPlus Gate(ゼロプラスゲート)は、
無料で30日間、HTML/CSSを基礎からガッチリ学べるプログラミングスクールです。
60本の動画教材を通じて、正しいコーディングを身につけられます。
分からないことがあれば、回数無制限でプロのエンジニアに質問できるため、
初めてHTML\CSSを学ぶ人でも安心です。またZeroPlus Gate最大の特徴として、
一人ひとりに専任のメンターが付きます。独学では何をどのように学んでよいか
迷ってしまいがちですが、メンターが正しい学習方法を示してくれるため、
Webサイトの作り方をしっかり学び切れますよ。ZeroPlus Gateは
毎月先着制になっているため、受講は早い者勝ちです!
お申し込みはお早めに。</p>
</div>
div{
border: 1px solid #ccc;
font-size: 24px;
}
表示結果
text-alignを指定しない場合、テキストの左端は揃っていますが、右端は揃っていません。ここでdivにtext-align: justify;
を指定してみます。
div{
border: 1px solid #ccc;
width:40%;
font-size: 24px;
text-align: justify;/*追加*/
}
表示結果
このようにtext-align: justify;
を指定すると、テキストの両端が揃うように調節できます。ただし上の事例では、テキストの文字の間隔が均一でない点に気づいたかもしれません。
和文のなかに英単語が織り交ぜられたテキストで起こりうる問題です。「HTML/CSS」「ZeroPlus Gate」など、要素の端にある英単語はつづりの途中で改行されません。単語がまるごと次の行に送られます。
これにより一行あたりの文字数が異なるにもかかわらず、均一に配置されるため、文字の間隔の広い箇所と狭い箇所が作られるのです。
ここでword-break: break-all;
を指定すると、英単語のつづりの途中で改行するように調節されるため、行ごとに文字数の差が出にくくなります。これにより文字間隔がある程度統一されます。
div{
border: 1px solid #ccc;
width:30%;
font-size: 24px;
text-align: justify;
word-break: break-all;/*追加*/
}
行ごとの文字数の差が少なくなり、文字間隔もある程度は統一され、見た目の違和感が少なくなりました。ただし、word-break: break-all;
は英単語が綴りの途中で改行されることにより「可読性を損なう」デメリットがあります。
まとめ:text-alignは親要素に指定して子要素に効かせる
本記事ではtext-alignの使い方について解説しました。「表示形式がブロックの親要素に指定して、インラインの子要素の配置を調節する」のが基本の使い方です。このとき、主に以下の3種類の値が使われます。
値 | 指定内容 |
center | テキストを真ん中寄せにする |
left | テキストを左寄せにする |
right | テキストを右寄せにする |
<div class="parent center">
<span>text-align: center;でテキストを真ん中にします。</span>
</div>
<div class="parent left">
<span>text-align: left;でテキストを左寄せにします。</span>
</div>
<div class="parent right">
<span>text-align: right;でテキストを右寄せにします。</span>
</div>
.parent {
border: 1px solid #ccc;
margin: 10px;
padding: 10px;
width: 80%;
height: 300px;
font-size: 30px;
}
.center {
text-align: center;/*テキストを真ん中寄せに*/
}
.left {
text-align: left;/*テキストを左寄せに*/
}
.right {
text-align: right;/*テキストを右寄せに*/
}
このように親要素に指定して、子要素を調節する使い方が一般的です。その他、text-alignを使ううえで押さえておきたいポイントを以下にまとめます。
- 子要素が画像(imgタグ)の場合にも配置を調節できる
- tableに指定することで表内のテキストの配置も調節できる
- pタグには直接text-alignを指定して、テキストの配置を調節できる
- spanタグに
display: block;
を併せて指定すれば、text-alignを直接指定できるようになる
- imgタグに
display: block;
を併せて指定しても、text-alignは効かない
上記の点も押さえておくとtext-alignの使い方はもうバッチリです。text-alignはWebサイトをコーディングするうえで、とてもよく使われるプロパティのため、しっかり特徴を理解して使いこなせるようにしていきましょう!

プログラミング学習でこのような経験はありませんか?
- 目標に向けて何を学べば良いかわからない
- 調べても解決策が見つからない
- 現場レベルのスキルが身につくのか不安
これらの悩みは、学習環境を整えることで全て解決することができます。
ZeroPlus Gateでは、30日間無料で最適な学習環境を提供しています。
- なんでも相談できる専属メンター
- いつでも技術相談ができるプロ講師
- 元IT企業CTO監修のカリキュラム
条件なしでこのレベルの環境を無料で提供しているのはZeroPlus Gateだけです。
ただし、無料サービスの提供には参加者の数に制限があります。
少しでも興味がある方は、以下のリンクからサービスの詳細をご覧ください。