divタグをdlタグの中で使用できるのか?

このQ&Aのポイント
  • dlタグの中でdivタグを使用することはできません。dlタグの中には直接dtタグとddタグしか入れることができません。
  • dtタグはインライン要素のみで、ddタグはブロック要素とインライン要素の両方を使えるため、ddタグの中ではdivタグが使用可能です。
  • 今回の場合、各タイトルと説明文を一つのdlで囲って表示するのが適切です。divタグを使用する場合は、dlの中で直接使用することはできません。
回答を見る
  • ベストアンサー

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
  • 回答数2
  • ありがとう数2

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

dlはdt,ddしか子供を持てないのでdivを置くのはNGですね 構造的にどうしてもdtとddの組み合わせを確定的に表示したいなら dlをわけるのが妥当ですね。

bobo12
質問者

お礼

ありがとうございます! やはりそうなのですね~。。 勉強になりました!

その他の回答 (1)

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

DL <!ELEMENT DL - - (DT|DD)+       -- definition list -->   ↑(DT|DD)+ は正規表現的な書き方ですがDT,DDのいずれか(|)をひとつ以上(+と言う意味 DT,DD <!ELEMENT DT - O (%inline;)*      -- definition term --> <!ELEMENT DD - O (%flow;)*       -- definition description -->   ↑(%inline)* は%inlineをゼロ個以上と言う意味 です。  ⇒10.3 定義リスト: DL、 DT、及びDD要素( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/lists.html#edef-DL ) したがって、そのようなマークアップは文法上も間違っていますが、それ以上にDIVやDT,DDの使い方が間違っています。 ※divはidやclass名を使って文書構造を補完します。  ⇒id属性及び class属性と併用することで、文書に構造を付加するための一般機構を提供する。( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/global.html#edef-DIV ) ※h1~h6は見出しをマークアップします。  There are six levels of headings from H1 (the most important) to H6 (the least important).  ⇒7.5.5 見出し: H1、H2、H3、H4、H5、H6要素( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/global.html#edef-H1 ) ※dl,dt,dd自体ブロック要素で、意味を持ちます。 [例]たとえば商品やアルバム、図鑑のようなものでしたらマークアップは <dl class="productList">   <dt>タイトル01</dt>   <dd><img src="" width="" height="" alt=""></dd>   <dd>説明</dd>   <dt>タイトル02</dt>   <dd><img src="" width="" height="" alt=""></dd>   <dd>説明</dd>   <dt>タイトル03</dt>   <dd><img src="" width="" height="" alt=""></dd>   <dd>説明</dd>   <dt>タイトル04</dt>   <dd><img src="" width="" height="" alt=""></dd>   <dd>説明</dd> </dl> だけでよいです。  またdtは意味的におかしければ <ul class="productList">   <li>タイトル01     <ol>       <li><img src="" width="" height="" alt=""></li>       <li>説明</li>     </ol>   </li>   <li>タイトル02     <ol>       <li><img src="" width="" height="" alt=""></li>       <li>説明</li>     </ol>   </li>   <li>タイトル03     <ol>       <li><img src="" width="" height="" alt=""></li>       <li>説明</li>     </ol>   </li> </ul> などになるはずです。 箇条書きですから、その項目自体が見出しとしての意味を持ちます。 また、<div class="aaa">を複数使うのではなく、子孫セレクタで済むはずです。

bobo12
質問者

お礼

詳しくありがとうございます。 ddを複数回登場させることが可能なんですね。 その点を知りませんでした。 ありがとうございました。

関連するQ&A

  • <p>タグはどこまで囲む?

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

    • ベストアンサー
    • CSS
  • 開始タグと終了タグについて

    開始タグと終了タグについて ものすごく初歩的な質問で失礼します。 <div id="container"> <div id="header"> </div> <div id="menu"> </div> <div class="main-top-img"> </div> <div class="main-middle-img"> <div id="main-contents"> <div class="text"> <h2 class="title"></h2> <p class="text"></p> <h3 class="subtitle"> <p class="text"></p> </div> </div> <div class="main-bottom-img"> </div> <div id="footer"> </div> </div> などいのように開始タグと終了タグの間に、他の多くの<div>要素がある場合、どこがその要素の終了タグなのか分からなくなります。 それぞれの開始タグが、それぞれの終了タグと対応するのは、どのようなルールのもとに決定されているのですか??

    • ベストアンサー
    • HTML
  • liタグの中に<p>タグやら<dl>を入れるのはあり?

    それともなしでしょうか? たとえば、作品実績みたいなのを羅列するとき 「画像」 「タイトル」 「簡単な説明」 を乗せたいときはどうしますか? <ul> <li> <p>画像</p> <dl> <dt>タイトル</dt> <dd>説明</dd> </dl> </li> </ul> こんな感じを考えたのですが・・・ <li>(作品)ごとにボーダーボトムで区切りたいかなと考えております。 <li></li>の中に他のタグを入れないほうがいいときいたこともあるんですが、皆さんならどうしますか? </ul>

    • ベストアンサー
    • HTML
  • 画像は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が苦手な子ばかりです。 私と副部長で頑張ってほぼ完成しましたが、 はじめてホームページを作った初心者で 細かい事を教えてもらえる人がいなくて困ってます。 初心者の質問で申し訳ありませんが よろしくお願いします。

  • <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
  • タグの組み方について

    以下ページ構成があります。 【ページ構成1】 <h2>目的:ファイルの保存</h2> <dl> <!--このページで何をするのかの説明--> <dt>ファイルの保存手順を解説します。</dt> <!--このページで何をするのかの全体図--> <dd><a href="img="001.png"><img="t001.png" alt="全体図画像"></a></dd> </dl> <H3>セクション1.ファイルの保存ウィンドウ呼び出し</H3> <ol> <li>手順1:ファイルメニューを選択します</li> <p><a href="img="002.png"><img="t002.png" alt="手順画像"></a></p> <li>手順2:~~</li> <p>手順2画像</p> </li> <ol> <H3>セクション2.ファイルの保存場所の選択</H3> <ol> ~上記タグ構成と同じため省略~ <ol> 【質問】 H2がページテーマで、H3からH2の内容を満たす手順を組んでおります。 h2の部分なんですが、 dlタグで組むのは不自然でしょうか? H2・・・ページの目的 dt・・・ページ目的にあたりすることを記述 dd・・・ページ目的の概念図(こんなことしますの全体プリントスクリーン画像) 全てのページに、目的概念図があるわけではないので、その時はddは削除しています。 dlは定義済みリストということですが、 私のようなH2の部分でdlを使うのはまずいでしょうか? <p>タグ二つ(dt、ddをpに変更し、dl削除)を使用するべきでしょうか? よろしくお願いします。

    • ベストアンサー
    • HTML
  • DD,DT,DDを横並び。paddingとmarginと無指定で

    DD,DT,DDを横並び。paddingとmarginと無指定で 下記の内どれが一番使われているのでしょうか? 理由も教えていただけれるとありがたいです。 dl,dt,dd{ margin:0; padding:0;} dt{ float:left; width:8em; } .list0 dd{ padding-left:7em;} .list2 dd{ margin-left:8em;} <div> <dl class="list0"> <dt>短いタイトル</dt> <dd>短い説明、短い説明、短い説明</dd> <dt>短いタイトル</dt> <dd>短い説明、短い説明、短い説明</dd> </dl> <br /> <dl class="list1"> <dt>短いタイトル</dt> <dd>短い説明、短い説明、短い説明</dd> <dt>短いタイトル</dt> <dd>短い説明、短い説明、短い説明</dd> </dl> <br /> <div class="list2"> <dl> <dt>短いタイトル</dt> <dd>短い説明、短い説明、短い説明</dd> </dl> <dl> <dt>短いタイトル</dt> <dd>短い説明、短い説明、短い説明</dd> </dl> </div> </div>

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

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

  • 定義リストの横並びと<DIV>要素の改行

    スタイルシートでテーブルのように横並びでレイアウトさせた定義リストの<dt>の内容にリンクを張っているのですが、 FirefoxとOperaで確認すると、リンク1とリンク2にカーソルを持っていってもカーソルの形が変わらず、クリックしても飛べません。 文字色はリンク用のスタイルシートを反映した色になっています。 スタイルシートの記述に問題があるのだと思うのですが、どこが悪いのかが分かりません。 アドバイス頂けると幸いです。 <dl id="sample"> <dt><a href="aaa.html">リンク1</a> <dd>説明 <dt><a href="bbb.html">リンク2</a> <dd>説明 <dt><a href="ccc.html">リンク3</a> <dd>説明 <dt><a href="ddd.html">リンク4</a> <dd>説明 </dl> dl#sample { margin-left: 1.5em; float: left; width: 450px; padding: 1px 1px 0; color: #000; } dl#sample dt { float: left; clear: both; width: 70px; margin-right: 10px; margin-bottom: 1px; padding: 2px 0 2px 2px; } dl#sample dd { float: left; width: 350px; margin-bottom: 1px; padding: 2px; } --------------------------------------- それともう一つ、 http://jquery.andreaseberhard.de/toggleElements/ このJavascriptを利用してDIV要素を開閉しているのですが、 DIV要素を以下のように二つ並べた場合 <div class="toggler-c" title="タイトル1"> <p>内容</p> </div> <div class="toggler-c" title="タイトル2"> <p>内容</p> </div> 二つとも閉じた状態の時、改行せずに タイトル1タイトル2 と表示されるのですが、これはスタイルシートの記述に問題があるからなのでしょうか。

    • ベストアンサー
    • HTML
  • <dl><dt>タグ使用時、インデントが生じない

    こんにちは。 <dl><dt><dd>タグを使った文章で、 よく、説明部分の字下げが生じないことが あります。 今回、 <img src="5.gif" style="float:left;"> <dl> <dt>作品例です。</dt> <dd>こんなものを作っています。</dd> </dl> <br clear="left"> というコードで、<dt>と<dd>部分が 並んで表示されます。 何度か、こういうことが生じて、 非常に困っています。 なにが、原因でしょうか。 何か分かる人がいましたら、 よろしくお願いします。

    • ベストアンサー
    • HTML

専門家に質問してみよう