今回は、実践でのdivタグの使い方を、デモを使いながら解説したいと思います。
実践でのdivタグの使い方
今回は、実戦でよく使うdivの使い方として、
imgでの使い方とブロック要素の横並びでの使い方をご紹介します。
imgでの使い方
まずは、以下の使用例をご覧ください。
HTML
<section>
<img src="./hiyoko.jpg" alt="" class="item">
<div class="box">
<img src="./hiyoko.jpg" alt="">
</div>
</section>
CSS
section {
width: 1000px;
}
//imgのみの場合
.item {
width: 100px;
margin: 0 auto;
}
//divで囲んでいるimgの場合
.box {
width: 100px;
margin: 0 auto;
}
.box > img {
width: 100%;
height: auto;
}
画像

このように、imgに対してdivで囲むことで、
レイアウトがしやすいためです。
使用例のimgのみのCSSをご覧ください。
『margin: 0 auto;』を記載していますが、imgはインライン要素のためmarginが効いていません。
※marginを効かせたい場合、『display: block;』を追加してブロック要素にしましょう。
それに対して、divで囲んだ場合は、ブロック要素の中にインライン要素があるため、
divのCSSからimgのレイアウトを変更することが可能です。
そのため、2つ目の『margin: 0 auto;』は効いているということです。
imgは、pとdivどちらで囲むか?
imgは、pタグで囲むという方もいます。
個人的には、pタグで囲む場合は、
文章上で、重要な画像に対して使用するというイメージを持っています。
ですので、
pで囲む場合 = 文章上で、関連性が高く重要な画像に『p』を使用
divで囲む場合 = 関連性が低くレイアウトに使う画像に『div』を使用
というイメージを持つようにしましょう。
ブロック要素の横並びでの使い方
まずは、以下のデモをご覧ください。
See the Pen jOqexJZ by ryu (@ryu-no-sss) on CodePen.
このように、div(boxの)で、div(box__itemの)を囲み、CSSで『display: flex;』を使うと、要素が横並びになります。
さすがにこれだけでは、わかりづらいので、以下の画像をご覧ください。

これは、先ほどのデモのHTMLコードです。
この画像のように、『<div class=”box”>』に『display:flex;』を記載すると、
box__itemを1つのブロック要素とし、
divのブロック要素を以下の画像のように、横並びにするということです。

display: flex;についてもっと知りたい!という方は、
以下のリンクの記事もぜひ!
また、子要素を横並びにする際のwidthの指定方法を以下のリンクの記事で解説していますので、こちらもぜひ!
divを使ってサイトの横幅を統一するやり方
先ほどのデモで、<div class=”news__inner”>という記載がありましたが、
これは、サイト内の横幅を統一させるために使用したdivです。
<section class="news">
<div class="news__inner">
<div class="box">
・・・・・
</div>
</div>
</section>
CSSで横幅のクラスを設定しておけば、HTMLでは、そのクラスを追加するだけで、横幅を統一することができるためとても便利です。
詳しくは、以下のリンクの記事をご覧ください。
まとめ
・imgは、文章と関係が深い画像に関しては、『p』で囲み、文章と関連性が低いレイアウト要素の画像は、『div』で囲む。
・要素を横並びにする場合は、divと『display: flex;』を使う。
今回は、実践でのdivタグの使い方ということで、
特によく使う方法をご紹介しました。
また、divの使い方で、なるほど!と思ったことがあれば、
共有したいと思います。
他にも、実戦でよく使うHTMLコードを以下のリンクの記事にまとめているので、ぜひ!
それでは、最後まで読んでいただきありがとうございました。