pタグとdivタグの区別についての質問

このQ&Aのポイント
  • ウェブ初心者がpタグとdivタグの違いについて迷っています。
  • pタグは「段落」、divタグは「まとまり」との理解ですが、具体的な使い分けが難しいです。
  • 画像や少量の文章・背景のみを含む場合、pタグかdivタグか迷っています。アドバイスをお願いします。
回答を見る
  • ベストアンサー

Web勉強中の初心者です。pタグとdivタグの区別

こんにちは。 web勉強を初めて3ヶ月の初心者です。 よく、コーディングしていて、imgタグを入れる際に、pタグを使うべきかdivタグを使うべきか迷ってしまいます。 最初は、わけもわからずdivで括ればいいのだと思っていましたが、そうでもないと気づき始めて、改めて本やネットで調べたらpタグは「段落」、divタグは「まとまり」となっていました。自分としては、ある程度のグループとして入れる場合はdivで囲んで、ある程度の量がある文章ではpタグという認識です。 ただ、そうすると画像を1枚入れたりとか、少しの文章と背景だけを入れたいときは、divではないだろうから、pタグなのかな?とか、それともタグを入れずに、前後のdiv間に、文章やimgだけで入れるべきなのかな?と考えていくと正直混乱してしまいます。 もしくは、そういう場合は前後のdivも含めた自分のグループの分け方自体が、おかしいのかもしれません。 わかりにくい文章ですいません。 いいアドバイスありましたら、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#196973
noname#196973
回答No.2

基本的にインライン要素であるimgタグなどはブロックレベル要素で囲むのは基本です。 そこでよくpタグにすべきかdivタグにすべきか悩みますよね。 でもここで注目すべきはdivタグの特徴です。 divタグはブロックレベル要素をグループ分けするものなので、その中にインライン要素が一つだけ入っているというのはあまりよろしくありません。 まぁimgタグはpタグやdivタグで囲まなくても役割はちゃんと果たしてくれるし、pタグ・divタグどちらで囲んでも表示が変わって見えないなどあるため悩むところですが、基本pで囲むものと覚えて間違っていないですよ。 検定などでもpで囲むことで正解になります。 実際複数入れる時もpタグで囲み、CSSで回り込みや改行を隙間を空けないような設定をします。 divタグはページの全体やヘッダー・フッター・メニュー部分などグループ分けしたりするのに設定してます。

ore-ole
質問者

お礼

わかりやすい文章でありがとうございます。 おかげさまで、インライン要素やブロック要素を改めて勉強し直すきっかけにもなりました。 感謝です!

その他の回答 (1)

  • jsktok
  • ベストアンサー率68% (44/64)
回答No.1

参考URLに説明が書いてありましたので貼らせてもらいます。

参考URL:
http://www.eonet.ne.jp/~nga/html/div&p.html
ore-ole
質問者

お礼

ありがとうございます。 ひと通り、教えてくださったサイトを拝見しました。 もっと、勉強しなくては!と考えさせられました。

関連するQ&A

  • 画像はDIVタグとPタグの両方で囲むの?

    クラブのホームページを作っているんですが 分からない事がありますので質問させていただきます。 勉強している本で画像もPタグで囲むのが正しいと載ってましたので ------------------------------------------------------- <div><p><img src="○○" alt="なし"></p></div> ------------------------------------------------------- と記述していたんですが、 色々勉強していくとPタグではなく、 ブロックレベル要素で囲むのが正しいとの事ですので <div>も<p>もブロックレベル要素なので ------------------------------------------------------- <div><img src="○○" alt="なし"></div> ------------------------------------------------------- とか ------------------------------------------------------- <p><img src="○○" alt="なし"></p> ------------------------------------------------------- みたいに無理に<div>と<p>の2つではなく <div>だけ、または<p>だけで、囲むのも問題はないのでしょうか? ※スタイルシートでレイアウトしています。 ※画像はスペースを空ける為だけですので<div>~</div>に文章はありません。  同じくaltの指定もしていません。 ※画像でスペースを空けるは、あまり良くない事は分かっていての質問です。 別の質問ですけど、あるホームページでH2(見出しタグ?)で ------------------------------------------------------- <div><h2>タイトル</h2></div> <div><p>文章</p></div> ------------------------------------------------------- が正しいと載っていたんですが ------------------------------------------------------- <div> <h2>タイトル</h2> <p>文章</p> </div> ------------------------------------------------------- では間違っているんでしょうか? すいません、もう1つ質問です。 http://openlab.ring.gr.jp/k16/htmllint/htmllint.html でチェックしてみると98点でした。 私のパソコンや、友達のパソコンでは、ちゃんと表示されてるんですが 100点じゃないと、表示されないパソコンもあるんでしょうか? 学校が短大で男子がいないので HTMLやCSSが苦手な子ばかりです。 私と副部長で頑張ってほぼ完成しましたが、 はじめてホームページを作った初心者で 細かい事を教えてもらえる人がいなくて困ってます。 初心者の質問で申し訳ありませんが よろしくお願いします。

  • <P>タグと<div>タグについて

    <P>タグと<div>タグには“前後に空行が入るかどうか”という違いがあるそうですが、下記のようなデータを作り、自分のホームページに記入したところ、前後に全く空行が入りませんでした。 しかし、自分のホームページ以外で、このデータを試してみたところ、<p>タグにはきちんと空行が入るようです。 記入する場所によって、空行が入ったり入らなかったりするのは、なぜなのでしょうか? ※ブラウザはIE8を使用しています。 <P align="right" style="width:740px;margin:auto;">●●●</p> <P align="right" style="width:740px;margin:auto;">●●●</p> <P align="right" style="width:740px;margin:auto;">●●●</p> <div align="right" style="width:740px;margin:auto;">▲▲▲</div> <div align="right" style="width:740px;margin:auto;">▲▲▲</div> <div align="right" style="width:740px;margin:auto;">▲▲▲</div>

  • div内に文章をを書くときは、pタグで囲った方が良

    div内に文章をを書くときは、pタグで囲った方が良いのでしょうか? タダ文章を表示させるだけではなく、 「これは文章です」という意味を込めたいのなら、pタグで囲うべきですか?

    • ベストアンサー
    • HTML
  • floatを適用したdiv内部にあるpタグのmarginについて

    floatを適用したdiv内部にあるpタグのmarginについて 現在HTMLとCSSを勉強している者です。 cssのmarginの挙動がいまいち理解できずに困っていたもので、 ご回答いただきたく質問させていただきました。 以下私が作ったサンプルHTMLとCSSです。 ==========HTML========== <div id="test01"> <p>Pタグで囲まれた文章です。</p> </div> <div id="test02"> <p>Pタグで囲まれた文章です。</p> </div> <div id="test03"> <p>Pタグで囲まれた文章です。</p> </div> <div id="clear"> <p>clear: bothです。</p> </div> (<body>前、</body>後省略) ==========CSS========== html, body, div { margin: 0; padding: 0;} p {margin: 10px; padding: 0;} div#test01 {background-color:#EEE; width: 900px;} div#test02 {background-color:#CCC; float: left; width: 650px;} div#test03 {background-color:#AAA; float: left; width: 250px;} div#clear {background-color:#888; clear:both; width: 900px;} 先頭に900pxのdiv(test01)、その下に二つのdiv(test02、03)をfloat:leftで並べました。 最後にclear:bothを行っております。 そして各div内に10pxのmarginを付与したpタグ文字を入力しているのですが、先頭のdivとfloat:leftを行ったdivで、marginの結果が異なってしまいました。 先頭のdivは上下に白い10pxの余白、左はtest01で指定した背景色を残したまま10pxの余白が作られ、float:leftのdivではtest02、03で指定した背景色を残したまま上下左右に10pxの余白が作られています。 このように同じ効果のpタグでも表示が異なってしまう理由は何でしょうか。 また先頭のdivの場合、上下左右に10pxの白または背景色の余白ができるのなら理解できるのですが、何故上下と左右でmargin結果が異なるのか、理由も知りたいです。 おそらくpaddingを併用すれば思った表示にはできると思うのですが、今回はこうなってしまう理由が知りたく質問させていただきました。 また私の記述方法に誤りがあればご指導いただけると助かります。 宜しくお願い申し上げます。

  • dlタグの中にdivは使える?

    dlタグの中で、dtタグとddタグを一つのdivで囲ってもよいのでしょうか?? 以下のようなかたちなのですが・・・。 使い方として間違っているのでしょうか?? ↓ ------------------------------------------------ <dl> <div class="aaa"> <dt>タイトル01</dt> <dd> <h4>説明文説明文説明文説明文説明文説明文</h4> <p><img ・・・・・></p> </dd> </div> <div class="aaa"> <dt>タイトル02</dt> <dd> <h4>説明文説明文説明文説明文説明文説明文</h4> <p><img ・・・・・></p> </dd> </div> <div class="aaa"> <dt>タイトル03</dt> <dd> <h4>説明文説明文説明文説明文説明文説明文</h4> <p><img ・・・・・></p> </dd> </div> </dl> ------------------------------------------------ dlタグの中には直接dtタグとddタグしか入れることができないということのようですが、 これはdivは入れられないということになるのでしょうか?? (dtはインライン要素のみ、ddはブロック要素もインライン要素も使えるということなので、 ddの中ではdivが使えると思うのですが・・・。) また、もしdivで囲えないとしたら、 今回の場合は、それぞれを一つのdlで囲ってしまうべきなのでしょうか?? ご存知の方いらっしゃいましたら、よろしくご指導ください。お願いします。

    • ベストアンサー
    • CSS
  • 段落タグ<p>について教えてください。

    昔、どこかのサイトで<p>タグは必要不可欠のものだ、との記述を見たことがあります。例えば <h1>タイトル</h1> <h2>サブタイトル</h2> <p>説明文</p> のように。必ず<p>タグで文章をくくらなければいけない、 というのが、『本来』の規則なのでしょうか。(←質問1) もしそうだとして、テーブルやリストなども<p>でくくるのですか? (↑質問2) また、<div>を使い1つの段落をブロックとしてまとめる(?)ときも<p>を使うのでしょうか、それは<div>の外側と内側、どちらに書くべきですか?(←質問3) 上記の質問はインライン要素、ブロック要素というようなものと関係があるのですか?(←質問4) 最後に、複数の改行を行うとき、<br>の連続は禁止されていますが、スペースだけの段落で改行を演じるのはどうなのでしょうか。(質問5) 長くなりましたが、簡単にでいいのでよろしくお願いします。

  • <div>タグの中の<img>タグのclass属性を削除したい

    <div class="center"> .... <img ... class="right" ...> .... </div> とあるソースをperlを使って <div class="center"> ... <img ...> ... </div> というように img タグの class="right" を削除したいです。 <div class="center"> の中にあるimgタグのみ対象としたいのですが、 どうすればよいのでしょうか。 なお、<div class="center"> タグの中には複数の <img ... class="right" .. >タグがある場合もあります。

    • ベストアンサー
    • Perl
  • divが思い通りになりません。ウェブデベロッパーでコーディングをしてい

    divが思い通りになりません。ウェブデベロッパーでコーディングをしていますが、このdivの閉じタグはsectionの、この閉じタグはprimaryの、という風にしたいのですがprimaryの閉じタグがなぜかsectionと対応してしまったりして思い通りにいきません。同じdivという閉じタグが複数あるので混乱してしまいます。場所が違うと効果も違ってくるので正しく対応させるにはどうすればいいでしょうか。

    • ベストアンサー
    • HTML
  • pタグ内、一部の画像のみ左に配置したいとき。

    ホームページの記事のページをDIVタグでくくって、 その中の「p」タグ内の画像は中央に配置されるように指定しているのですが、 一部の画像のみ、左に配置したいのですが、どのようにすれば良いでしょうか? できればCSSで行いたいです。 ちなみにホームページは ​http://www.k-ban.net​ です。こちらの各コンテンツのページ中央に掲載される画像についてです。 左に配置したい画像前後をdivでくくり、align=left指定したのですが、その<p>~</p>全体のCSS設定が崩れ、且つ画像は真ん中のままでした。 <diV id=""> <p> <img>・・・・</img> </p> </div> という形です。 宜しくお願いします!

    • ベストアンサー
    • HTML
  • <p>タグはどこまで囲む?

    ただいまCSS勉強中です。 いつもどこまで<p>タグで囲まなくてはいけないのか悩むのですが、 「ブロックレベル要素同士は入れ子にならない」 「ブロックレベルの中に含まれるのはインライン要素だけ」 と考えていいのでしょうか。 でもdivの中にpを入れることもありますよね?? ブロックレベル要素:h,p,ul,dl,blockquote,divなど インライン要素:a,img,em,strong,brなど よろしくお願いいたします。

    • ベストアンサー
    • CSS

専門家に質問してみよう