• ベストアンサー

「olタグ」内に「hタグ要素」を含めるのは正しい?

<h2>▲▲▲▲▲▲</h2> <ol> <li>●●●●</li> <li>●●●●</li> <li>●●●●●</li> </ol> 現在では、上記の様に記述しています。しかし、下記の様な形の記述が正しいと思う様になってきました。なお、プラウザでは、どちらも同じ様に表現されます。 どちらの記述が正しいですか? <ol><h2>▲▲▲▲▲▲</h2> <li>●●●●</li> <li>●●●●</li> <li>●●●●●</li> </ol>

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

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

 ブラウザで表示を確認して・・・と言うのはダメなのです。ブラウザには、エラーのある文書も極力拡大解釈して表示することが求められていますが、著者がそれに頼るのは間違いです。 ・認識できない要素があった場合、ユーザエージェントは、内容のレンダリングを試みねばならない。( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/appendix/notes.html#notes-invalid-docs ) ・著者  HTML文書を作る場合には、この仕様における、他のDTDセットではなく strict DTD に適合する文書を作るよう推奨する。( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/conform.html#h-4.1 ) HTML5では、著者が使えるもの、ユーザーエージェントの処理が明確になりましたから、非推奨自体なくなりました。  明らかに <h2>▲▲▲▲▲▲</h2> <ol> <li>●●●●</li> <li>●●●●</li> <li>●●●●●</li> </ol> が正しいです。 <ol><h2>▲▲▲▲▲▲</h2> <li>●●●●</li> <li>●●●●</li> <li>●●●●●</li> </ol> の場合、多くのブラウザは  <ol></ol>  <h2>▲▲▲▲▲▲</h2><!-- </li> -->  <ol>   <li>●●●●</li>   <li>●●●●</li>   <li>●●●●●</li>  </ol> と解釈して表示するでしょう。 >「olタグ」内に「hタグ要素」を含めるのは正しい?  こんなことはここで聞くより仕様書に目を通せば正確な答えが分かります。  ⇒<!ELEMENT OL - - (LI)+( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/lists.html#edef-OL )  OLは開始タグ終了タグとも省略不可(--)、中にはLIをひとつ以上(+)と明記してあるし、 ⇒Another HTML-lint 5( http://www.htmllint.net/html-lint/htmllint.html )  で[DATA]タブから送信してみりゃ、詳しく解説してくれる。 No.1の補足で 「だた、それだと<h2>タグの範囲が、次の見出しが記述されるまで続く事になります。 例えば、下記のような場合は混乱が有ると思います。」  これはHTMLに限らず、一般的な文書でも見出しをつけると、新たなセクションが始まり、次に見出しが現れるまでは、ひとつのセクションに所属するのではないですか????  連続するふたつのリストの内容が分かりませんから、どのマークアップが正しいかは示すことが出来ません。 「「h2タグ」の範囲を、「olタグ」に囲まれたリストだけ、「ulタグ」はまた別の事柄の時です。その場合は、「ulタグ」の前にも「hタグ」を記述していく必要が有りますか?」  もし、ulタグがh2とは、まったく別の事柄について述べているのでしたら、当然別のセクションですから基本的には見出しが必要になるでしょう。  見出しが示す内容と、それぞれのリストの内容はあなたにしか分かりません。  セクションと言うのは!!機械的に目次を作成するときに、その項目となりうるheading(HTMLだと<h1>~<h6>をもつであろう記事の集団です。 <div class="section">  <h2>このセクションの見出し</h2>  <p>・・</p>  <ol>   <li></li>  </ol>  <div class="section">   <h3>サブセクションの見出し</h3>   <ul>    <li></li>   </ul>  </div> </div> HTML5ですと <section>  <h2>このセクションの見出し</h2>  <p>・・</p>  <ol>   <li></li>  </ol>  </section>   <h3>サブセクションの見出し</h3>   <ul>    <li></li>   </ul>  </section> </div> ★h3を表示するかしないかはHTMLとは関係ありません。  スタイルシートでsection section h3{display:none;}ですむ。 よくあるのが次のような場面です。(HTML5の<nav>は<div class="nav">に置き換えて考える。 <nav>  <h2>サイトマップ</h2>  <ol>   <li><a href=""></a></li> ・・この場合テキストブラウザや読み上げソフト点字端末、印刷などには見出しが必要ですが視覚系ブラウザには、デザインでナビゲーションだと示せますから nav h2{display:none;} とすることは、極めてよく行われます。  いずれにしても、もう少し具体的な内容(実物でなくても)を教えてください。  アドバイスのしようがないです。

prime2011
質問者

お礼

回答を頂きまして、有難うございます。 疑問を解決する事が出来ました。 有難うございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (4)

  • DrFell
  • ベストアンサー率55% (305/551)
回答No.4

先の回答にあるように、後者は明らかに間違いですので、どちらが正しい?と問われれば、前者の可能性があると答えます。でも、前者が正しいか?というと必ずしも正しいわけではないように思います。 ●や▲では意味がわかりません。どのように表示させるか、させたいか?よりも、どのような構造か?でタグをつけるべきです。なので、●や▲の意味や関連によって、正しいタグは変わってきます。 例えば、入れ子のリスト(項目の中に項目がある)場合 <ul> <li>日本料理<!--子--> <ol> <li>郷土料理</li><!--孫--> <li>懐石料理</li><!--孫--> <li>会席料理</li><!--孫--> </ol> </li> <li>中華料理</li><!--子--> <li>洋食料理</li><!--子--> </ul> でどうでしょう?デザイン的にも、 子には ul>li{ } 孫には ul ol>li{ } 等で区別ができます。 <ul>や<ol>の子要素は必ず<li>です。<li>の中に<h2>を入れることは問題がありませんので、どーしてもh2を使いたいなら <ol> <li><h2>▲▲▲▲▲▲</h2></li> <li>●●●●</li> <li>●●●●</li> <li>●●●●●</li> </ol> <ul> <li>●●●</li> <li>●●●●</li> </ul> なら、文法は問題がなくなります。が、文章構造として、今回の質問では使いどころが私には思い浮かびません。見た目のデザインは、cssで調整しましょう。

prime2011
質問者

お礼

回答を頂きまして、有難うございます。 疑問を解決する事が出来ました。 有難うございました。

全文を見る
すると、全ての回答が全文表示されます。
  • naokita
  • ベストアンサー率57% (1008/1745)
回答No.3

olの直接の子は、liのみです。 無理にh2を入れる事もないです。 関連付けるならdlの方が良い場合もあります。 以下、▲で序列リストを意味する場合: <dl> <dt>▲▲▲▲▲▲</dt> <dd> <ol> <li>●●●●</li> <li>●●●●</li> <li>●●●●●</li> </ol> </dd> </dl> 以下、▲で序列リストと箇条書きリストの両方を意味する場合: <dl> <dt>▲▲▲▲▲▲</dt> <dd> <ol> <li>●●●●</li> <li>●●●●</li> <li>●●●●●</li> </ol> </dd> <dd> <ul> <li>●●●</li> <li>●●●●</li> </ul> </dd> </dl>

prime2011
質問者

お礼

回答を頂きまして、有難うございます。 疑問を解決する事が出来ました。 有難うございました。

全文を見る
すると、全ての回答が全文表示されます。
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

検索するまでもなく, DTD を読めば「ol の中には li しか入れられない」ことは明らか. 従って下の方を正しいとする余地はどこにもない. 一方, 特に過去のしがらみでブラウザには「だめな HTML でもなんとかする能力」を求められることがあるので, 「ブラウザでどう見えるか」は根拠にするべきではない. ol と ul を並列させて, かつ ol に h2 を付けるなら ul にも h2 を付けるのが論理的に最も自然だね... と書いておくけど, 正直あんまり適切な方法がないというのがなんとも. title 属性はこの場合全く役に立たんし. かなり苦しいけど <OBJECT> <P class="list-caption">なんか</P> <OL> <LI> <!-- これ以降の中身は省略 --> </OL> </OBJECT> みたいにごまかすかなぁ.

prime2011
質問者

お礼

回答を頂きまして、有難うございます。 疑問を解決する事が出来ました。 有難うございました。

全文を見る
すると、全ての回答が全文表示されます。
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

上が正しい.

prime2011
質問者

お礼

回答有難うございます。 ネット検索しても、上の記述が正しいとの意見が有りました。 だた、それだと<h2>タグの範囲が、次の見出しが記述されるまで続く事になります。 例えば、下記のような場合は混乱が有ると思います。 <h2>▲▲▲▲▲▲</h2> <ol> <li>●●●●</li> <li>●●●●</li> <li>●●●●●</li> </ol> <ul> <li>●●●</li> <li>●●●●</li> </ul> つまり、「h2タグ」の範囲を、「olタグ」に囲まれたリストだけ、「ulタグ」はまた別の事柄の時です。その場合は、「ulタグ」の前にも「hタグ」を記述していく必要が有りますか? また、このケースの「ulタグ」の前に「hタグ」を付けたくない場合は、他に妥当なタグ(objectタグなど)はあるでしょうか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 初心者です。<ol>タグについて

    <ol> <li>○○○○</li> <li>▼▼▼▼</li> <li>××××</li> </ol> を組み合わせて、下記のように作ることは可能でしょうか? ------------------------ 持参するもの 1. お弁当 2. おやつ(500円まで) 3. 水筒     1.オレンジジュース     2.カルピス     3.麦茶 --------------------------- よろしくお願いします!

    • ベストアンサー
    • HTML
  • リストの間隔の違いについてなのですが

    リストの間隔の違いについてなのですが 【 HTMLの記述 】 <ol> <li>ほげほげ</li> </ol> 【 CSSの記述 】 ol li { list-style-position: inside; } 上記の場合、それぞれのプラウザで以下のように違いが出てきます。 <IE6,IE7,Firefox3の場合> 1. ほげほげ <IE8の場合> 1.  ほげほげ これのIE8の間隔を狭めたいのですが可能なのでしょうか? outsideは使わない方法でよろしくお願いします。

    • ベストアンサー
    • HTML
  • UL OL タグのインデントについて

    UL OLタグでリストを作った時、通常下記のように表示ますが、 リスト  ・項目1  ・項目2  ・項目3 これを リスト ・項目1 ・項目2 ・項目3 のように<li>でくくったものをインデントさせないで表示することは可能でしょうか?

    • ベストアンサー
    • HTML
  • タグの組み方について

    以下ページ構成があります。 【ページ構成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
  • JavaScriptでタグを含む要素が返ってくる

    const base = document.getElementById('parent'); const children = base.children; console.log(children[0]); console.log(children[1]); console.log(children[2]); 下に記述したHTMLの<ul>の子要素を取得するために上記のように記述しました。この場合添付画像のようなタグを含めた要素が返ってきます。タグの中に書かれた内容を取得するにはtextContentを使えば良いようです。 初心者なもので、 <タグを含めた要素を取得してどんな使い道があるのでしょうか? 意味がよくわかりません。  使い慣れた方、これの使い道を教えてください。宜しくお願いいたします。 <ul id="parent"> <li id="first">1番目</li> <li id="second">2番目</li> <li id="third">3番目</li> </ul>

  • ulやol、どの階層に居てもOKなcss記述方法

    例えば、こんな場合でも <ol>   <li>     <ul>       <li></li>       <li></li>       <li>         <ol>           <li></li>           <li></li>           <li>             <ul>               <li></li>               <li></li>               <li></li>             </ul>           </li>         </ol>       </li>       <li></li>       <li>         <ol>           <li></li>           <li></li>         </ol>       </li>     </ul>   </li>   <li></li>   <li></li> </ol> こんな場合でも <ul>   <li>     <ul>       <li></li>       <li></li>       <li>         <ul>           <li></li>           <li></li>           <li>             <ul>               <li></li>               <li></li>               <li>                 <ul>                   <li></li>                   <li></li>                   <li></li>                 </ul>               </li>             </ul>           </li>         </ul>       </li>       <li></li>       <li>         <ol>           <li></li>           <li></li>         </ol>       </li>     </ul>   </li>   <li></li>   <li></li> </ul> どの階層上のol、ulでも ulのliには、list-style-typeのdisc(・)が付き、 olのliには、list-style-typeのdecimal(1、2、3…)が付く cssのシンプルな記述方法を教えて下さい。 何も設定しないと、ulのliが階層によってcircle(○)だったりsquare(■)だったり。 ul liで設定すると、ul内にあるol liが意図しないマークになる。 liのみ設定すると、ulかolのどちらかで意図しないマークになる。 ひょっとしたら、いろんな階層に居る場合を想定した記述方法(ul ol liとか ol ol liとか) をするしかやり方はないのでしょうか?

    • ベストアンサー
    • HTML
  • liタグのコピペ

    下記コードのコピペがうまくいかない理由が分かりません。 <html> <body> <h1>test</h1> <ul> <li>aaa</li> </ul> </body> </html> 上記コードをブラウザで開き、<li>タグを描画させた状態でテキストエディタにコピペすると test # aaa となります。ちなみに<ul>を<ol>にしてあげると test 1. aaa としてくれます。 おそらく<ul>としたときの<li>の描画は、内部的に画像?にしており、結果的にコピペ処理の中で"# "に変換しているのではないかと予想しています。 ひとまず明らかにしたいのは 1.<li>は内部的に画像を表示しているのか? 2.なぜコピペ処理の中で"# "に変換されたのか?("# "以外に変換したりもするのか?) 以上です。宜しくお願い致します。

    • ベストアンサー
    • HTML
  • HTML5 | 見出しよりも先にメタ要素

    こんばんは、 現在ブログをHTML5へと作り変えています。お伺いしたいのですが、以下のように見出しよりも先にそのメタ要素を記述する構造は良くないのでしょうか? <article>  <header>   <ul><li>日付</li><li>カテゴリ</li></ul>   <h1>タイトル</h1>  </header>  … </article> 見出しを先に記述した後に、CSSで入れ替えることはもちろんできるのですが。よろしくお願いします。

  • ol、li の中央寄せについて

    css初心者の者です。 下記のように横列3つに左寄せで並んだ文字をそのまま画面中央に寄せるにはスタイルをどのように指定すればよろしいのでしょうか?  ※縦列に中央寄せではないです。 初歩的な質問で恐縮ですが、ご教示いただければ助かります。 <ol id="filter"> <li data-filter="Coffee"></li> <li data-filter="Espresso"></li> <li data-filter="sweets"></li> </ol>

    • ベストアンサー
    • CSS
  • ol、liをスタイルシートで中央寄せ

    下記のような3つに並んだ単語1列をそのまま左右中央寄せにしたいのですが、スタイルシートをどのように設定したら いいのでしょうか?(下記のものはjavascriptsに関連したhtmlコードです。) cssに御詳しい方、教えてください。 <ol id="filters" class="menu"> <li data-filter="Coffee">tea</li> <li data-filter="drink">drink</li> <li data-filter="sweets">sweets</li> </ol>

    • ベストアンサー
    • CSS
このQ&Aのポイント
  • M-BT13BL マウスを使用している際に、ホイール操作を行うとマウスが切断され、反応が遅くなる問題が発生しています。
  • ドライバーの更新やBluetooth接続の設定変更など、対策は試してみましたが改善されません。
  • 古いBluetoothマウスの特性かもしれませんが、この問題に対する解決策はあるのでしょうか?
回答を見る