icon
icon

HTMLで右寄せ・中央寄せ・左寄せをする方法【初心者向け】現役エンジニアが解説

初心者向けにHTMLで右寄せ・中央寄せ・左寄せの指定方法を解説しています。テーブル作成の際などに役立つ知識なので、実際にソースコードを書きながら慣れていきましょう。align属性を使って説明しています。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

この記事を書いた人

テックアカデミーマガジン編集部

この記事ではWebページ制作の際に、要素の右寄せ・中央寄せ・左寄せを実現するHTML/CSSの記述方法について、テックアカデミーのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。

以下のような悩みや疑問を持っている方は、記事を読むことで解決できるでしょう。

  • 要素の位置をどのようにコントロールするのかわからない
  • 中央寄せしてみたつもりが、うまくいかない
1時間でできる無料体験!

目次

そもそもHTMLの記述方法がわからない場合は、 HTMLの書き方について解説した記事を読むとさらに理解が深まります。

 

田島悠介

今回は、HTMLに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

右寄せ・中央寄せ・左寄せをする方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

ブロック要素・インライン要素

HTMLの要素には、ブロック要素とインライン要素の2種類があります。

ブロック要素は見出しなど、文章の区切りを表すものです。

  • divタグ
  • pタグ
  • h1タグ

インライン要素は、以下のように文章要素を表すものです。

  • aタグ
  • imgタグ
  • spanタグ

対して、CSSではインライン要素とブロック要素を付け替えたり、両方の特徴を持ったインラインブロック要素にすることもできます。

HTMLとCSSでは、右寄せ・中央寄せ・左寄せの手法や、ブロック要素とインライン要素の手法が異なる点を把握する必要があります。

設定する際は要素がブロック要素なのか、インライン要素なのか把握しましょう。

 

インライン要素の表示位置 text-align

インライン要素の右寄せ・中央寄せ・左寄せの指定する場合、text-alignを使います。

使い方はインライン要素を囲っている親要素に対して、インライン要素を左右中央のどの位置に表示するか指定しましょう。

 

この例では、インライン要素であるimgタグを親要素divの中で左右中央に配置しています。

See the Pen
aligns
by TAKAYOSHI (@lspuwbkv)
on CodePen.


背景が水色になっている箇所が親のdiv要素の領域です。

 

親要素の領域の中で、インライン要素を左右中央どこに表示するかを、親要素にtext-alignというCSSを付与し指定します。

div.left {
    text-align: left; 
}
div.center {
    text-align: center; 
}
div.right {
    text-align: right; 
}

leftは左寄せ、centerは中央、rightは右寄せです。

例えば、中央揃えをしたい場合はどの領域において中央にしたいのか、というのを意識しましょう。

 

[PR] Webデザインで副業する学習方法を動画で公開中

ブロック要素の表示位置は左右マージンを使用する

ブロック要素の右寄せ・中央寄せ・左寄せの指定をするには、左右のマージンを使います。

注意点としてtext-alignは使用しないことを把握しておきましょう。

ブロック要素に幅を指定して、左右の余白を設定していくイメージです。

 

以下のHTMLを具体例として見ていきましょう。

<div class="background left">
    <div class="inner">LEFT</div>
</div>
<div class="background center">
    <div class="inner">CENTER</div>
</div>
<div class="background right">
    <div class="inner">RIGHT</div>
</div>

 

以下では、クラスbackgroundの中でクラスinnnerの表示位置を指定しています。

しかし、うまく動作しません。

.background{
    background:gray;
    margin: 1rem;
}
.inner{
    width: 30%;
    background:red;
}
.background.left{
    text-align:left;
}
.background.center{
    text-align:center;
}
.background.right{
    text-align:right;
}

See the Pen
align2
by TAKAYOSHI (@lspuwbkv)
on CodePen.


灰色の部分がbackground、赤い部分はinnerです。

backgroundの中でinnerの位置を設定したはずですが、innerの中で文字の位置が変わっている状態です。

div要素がブロック要素であるため、インライン要素向けのtext-alignを使っても機能しないからです。

 

以下のプログラムでは、ブロック要素の手法として、左右マージンを使って設定していきます。

左右中央寄せをしたときに余白をつける方向を意識し、余白がある方向にmargin:autoを指定します。

左寄せの場合はmargin-right、中央の場合はmargin-leftとmargin-right 、右寄せの場合はmargin-leftを使用しましょう。

.background{
    background:gray;
    margin: 1rem;
}
.inner{
    width: 30%;
    background:red;
}

.left .inner{
    margin-right: auto;
}
.center .inner{
    margin-right: auto;
    margin-left: auto;
}
.right .inner{
    margin-left: auto;
}

See the Pen
alingn3
by TAKAYOSHI (@lspuwbkv)
on CodePen.

無事に灰色のbackgroundの中で、赤色のinnerの表示位置を指定できました。

marginを使って左右中央寄せをする場合は、必ずwidthを親要素より小さい幅で指定する必要があります。

また、text-alignは親要素backgroundに指定していました。

しかし、maringはinner要素自体に指定するため注意しましょう。

この2つの方法を使いこなせれば、どんな要素でも左右中央寄せが可能です。

 

また、フレックスボックスと呼ばれるdisplay:flexを使う手法でも、左右中央寄せが可能です。

フレックスボックスとは、いくつかの要素を囲っている親要素に指定して、その中の要素の表示位置や並び順を指定するCSSです。

オプションプロパティを駆使した場合、表示位置や並び順を細かく設定できるだけでなく、左右中央寄せに関しても表示可能です。

 

コラム

コスパとタイパ、両方結果的に良くなる良くなる学び方とは?

「スクールは高いし時間も縛られて効率が悪い」と考える方は多いと思います。
もちろん、時間も費用もかかることは間違いありません。
ただ 結果的に無駄な学びにお金も時間もかける方がリスクが高いという考えもあります。

コスパ・タイパ最適化の参考として、 テックアカデミー卒業生がスクールを選んだ理由 をご紹介します。

  • ・困ったときに、質問や相談できる相手がいるため挫折しなかった
  • ・プロとして必要なスキルのみを深く学べたので無駄がなかった
  • ・副業案件の提供と納品までのサポートがあったので目的を達成できた

安価・短期間で広く浅く学んでも意味がありません。 本当に自分の目的が達成できるか、それが重要です。
自分にどのスキルや学び方が合っているか、どんな学習方法かなど、お気軽に 無料相談 に参加してみませんか?

カウンセラー・現役のプロへ、何でも気軽に無料相談可能。 30分か60分お好きな時間が選べて、かつ3回まで すべて無料で ご利用できます。
無理な勧誘は一切ない ので、お気軽にご参加ください。

今なら相談した方限定の割引・参加特典付き! 無料相談はこちら

実際に書いてみよう

このプログラムでは「align.html」を作成した上で、以下の記述を行います。

align.html
------------------------------------------------------------------------
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
  </head>
  <body>
    <table border="1" width="500px">
    <tbody>
      <tr><td align="right">align="right"を指定すると右寄せです。</td></tr>
      <tr><td align="center">align="center"を指定すると中央寄せです。</td></tr>
      <tr><td align="left">align="left"を指定すると左寄せです。</td></tr>
    </tbody>
    </table>
  </body>
</html> 
------------------------------------------------------------------------

 

ブラウザで開いた場合は、以下のように表示されます。

 

大石ゆかり

要素の右寄せ・中央寄せ・左寄せを実現するHTML/CSSの記述方法がよく分かったので良かったです!

田島悠介

ゆかりちゃん、これからも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

HTMLを学習中の方へ

これで解説は終了です、お疲れさまでした。

  • つまずかず「効率的に」学びたい
  • 副業や転職後の「現場で使える」知識やスキルを身につけたい

HTMLを学習していて、このように思ったことはありませんか?

テックアカデミーのWebデザインコースでは、第一線で活躍する「プロのWebデザイナー」が教えているので、効率的に実践的なスキルを完全オンラインでしっかり習得できます。

合格率10%の選考を通過した、選ばれたWebデザイナーの手厚いサポートを受けながら、オリジナルのWebサイト制作を学べます。

まずは一度、無料体験で学習の悩みや今後のキャリアについて話してみて、「現役Webデザイナーから教わること」を実感してみてください。

時間がない方、深く知ってから体験してみたい方は、今スグ見られる説明動画から先に視聴することをおすすめします!

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学で学習していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、マンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう カウンセラーやエンジニア・デザイナー があなたの相談に真摯に向き合います。

「自分に合っているか診断してほしい」
「漠然としているが話を聞いてみたい」

こんなささいな悩みでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する