divタグの使い方とレイアウト

アイキャッチ画像 初めてのホームページ作成

HTMLにはレイアウトするためのdivタグが用意されています。この記事ではCSS初心者向けにdivタグの使い方とレイアウトを変える方法を説明しています。

divタグの使い方

Chromeブラウザ画面の画像

このようなページがあったとして、 header領域にある要素を中央寄せにしたいとします。divタグを使う方法は沢山ありますが、このようにレイアウトを変えたい時にもdivタグを使います。

heade内HTMLの見本

VScode画面の画像

今回はheader内の全ての要素を中央寄せにするので、header内をdivタグで囲います

スタイリングの為の識別子 class属性

divタグ説明の画像

divタグは文書の中でも使う場所が多いので、どのdivタグか分かるようにclass属性を付けます。また、class属性の名前は自由に決めることができるので、その場所が分かるような名前をアルファベットで決めます。

書き方

VScode画面の画像

今回はまとめて動かす意味で container と名前を付けましたが自由に決めて大丈夫です。今ソースコードは以下のようになっています。

class属性を指定してレイアウトを変更

VScode画面の画像

スタイルシートの方で、.(ドット)と付けた名前でセレクターとして指定することができます。

今回はcontainerと名前を付けていたので、.containerでセレクターとして指定が可能になります。

試しに背景色を黄色に設定し、横幅を400pxにしてみます。コードは以下の通りです。

.container {
  background: yellow;
  width: 400px;
}

表示の確認

Chrome画面の画像

上手くいっていると、背景色が変わり width(横幅)も400pxになって表示されています。

中央揃えにする方法

margin説明の画像

headerの今の状態を簡単に表すとこのようになっています。divタグで囲った部分が左寄せになって、右にmargin(外側の余白) がある状態です。

余白を均等に左右に分ける

margin説明の画像

中央揃えにする方法はいくつかありますが、このように余った余白を均等に左右に振り分ける方法が良く使われています。

考え方としてはdivタグに左右同じ分の margin(外側の余白)を与える感じになります。書き方は以下のようになります。

書き方

VScode画面の画像

divタグは container で指定しているので、プロパティは margin、 値は上下必要ないので 0 左右は auto と書くと均等にしてくれます。

margin: 0 auto;

プロパティに対して値の書き方はいくつかあり、上記の指定の方法が良く分からないという方は以下の記事を参考にできます。

表示の確認

Chrome画面の画像

このように中央表示されるようになります。

レイアウトに便利なFlexbox

Chrome画面の画像

今度は中央表示させたdivの中身をレイアウトしたいと思います。プロフィール写真を左側に、名前とその他を右側に表示させます。

方法はいくつかありますが、今回は Flexbox を使いたいと思います。

分けたい部分をdivで囲う

VScode画面の画像

containerという名前を付けたdivの中で、分けたい要素をまたdivで囲います。復習になりますが、どのdivか分かるようにclass属性で名前を付けます。今回は、左側に表示するプロフィール写真をmy-picture、その他右側に表示したいものをmy-infoという名前を付けました。

<header>
  <div class="container">

    <div class="my-picture">
      <!--左側のプロフィール写真-->
    </div>

    <div class="my-info">
       <!--右側に表示させるその他-->   
    </div>

  </div>
</header>

スタイルシートの設定

VScode画面の画像

スタイルシートで、.my-picture と .my-info で設定をしてあげます。今回左右に表示されたのが分かりやすくする為、背景色をオレンジとローヤルブルーにします。

親要素となる container にdisplay プロパティで flex としてあげます。

要素の親と子の関係

VScode画面の画像

要素の親子関係ですが、難しく考える必要はありません。タグで囲った側が親要素になり、囲われた側が子要素になります。

flexのイメージ

VScode画面の画像

flexboxは他にも色々な並び方ができますが、単純に横並びさせるだけなら先ほどスタイルシートに書いた通りです。親要素に flex を指定するとその子要素が横並びになります。

表示の確認

Chrome画面の画像

このように container が中央表示されて、その中の my-picture が左側my-info が右側に表示されています。ただ、左側と右側の間に少しスペースが欲しいので margin を指定したい方は以下のように設定ができます。

書き方

VScode画面の画像

表示の右側に当たる my-info の左側に margin(外側の余白)を 35px ほど付けました

margin-left: 35px;
Chrome画面の画像

黄色い部分が余白になっています。 このように画面を確認しながら調整をしていきます。

まとめ

divタグも flexboxも活用する方法が沢山あり一気に覚えるのは大変ですが、初心者の方に少しでも理解できてもらえたら幸いです。覚えるコツとしては、実際に自分で考えながらレイアウトをいじってみること。数をこなして行く内にどんどん上達します。

これでdivタグでのレイアウトは完了です。

▼こちらの記事で次のステップに進みます

コメント

タイトルとURLをコピーしました