• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:htmlの記述に関して)

htmlの記述に関する質問

このQ&Aのポイント
  • ホームページに3つのコンテンツを用意する際、タグの種類ごとに書き、css(absolute)でレイアウトを整えるのは問題があるのでしょうか?
  • 他の人のソースでは1つのコンテンツについて集中的に書かれているが、タグの種類ごとに書くことが問題ないか教えてください。
  • htmlの記述において、コンテンツをタグの種類ごとに分けて書き、レイアウトを整える方法について教えてください。

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

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

 HTML(略語ですから大文字です)は、読んで字の如し--文書をそれを構成する要素をタグでマークアップするメタ言語です。 →Introduction to HTML 4 (ja) ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/intro/intro.html#h-2.4 ) 『著者は、自分の文書が音声出力ブラウザや点字出力等、様々なプラットフォームでどのようにレンダリングされるかを考慮する必要がある。』  たとえば検索エンジンは、javascriptもスタイルシートも利用しませんから、「ほとんどの検索エンジンのスパイダーには Lynx で見えるようにサイトが映ります ( http://support.google.com/webmasters/bin/answer.py?hl=ja&answer=35769#2 )」  言い換えれば、スタイルシートも画像もない状態で文章の内容が理解できるかです。  またHTML4.01であいまいだった部分の反省からHTML5では、この部分はより徹底化されます。すなわち <body>  <header>   文書のヘッダ  </header>  <section>   <hn>見出し</hn><!-- nは1~6の数字だが階層は示さない-->   文章   <section>    <hn>見出し</hn>    文章   </section>   <article><!-- ヘッダや本文フッターを持ちうる独立した記事 -->    <header></header>    <section></section>    <footer></footer>   </article>  </section>  <footer>  </footer> </body> のようなマークアップになるでしょう。  HTML5でははっきりと、「ひとつのセクションにはそのセクションの見出しがひとつだけ必ず存在することが想定されている」とされています。ふたつ書くときは <section>  <hgroup>   <h1>見出し</h1>   <h2>見出し</h2>  </hgroup>  <p>・・・ と書かなければなりませんがその場合も、可能なら <section>  <h1>見出し</h1>  <section>   <h2>見出し</h2>   <p>・・・  </section> と書くことが推奨されています。  →4.4.2 The section element ( http://www.w3.org/TR/html5/the-section-element.html#the-section-element ) あなたの例文をHTML4.01的に書けば <div class="section">  <h2 class="">1つ目のセクションのタイトル</h2>  <div class="figure"><img src="1つ目のセクションの画像"></div>  <p class="">1つ目のセクションの文章</p> </div> <div class="section">  <h2 class="">2つ目のセクションのタイトル</h2>  <div class="figure"><img src="2つ目のセクションの画像"></div>  <p class="">2つ目のセクションの文章</p> </div> <div class="section">  <h2 class="">3つ目のセクションのタイトル</h2>  <div class="figure"><img src="3つ目のセクションの画像">  <p class="">3つ目のセクションの文章</p> </div> でしょう。 ★DIV要素とSPAN要素は、id属性及び class属性と併用することで、文書に構造を付加する ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/global.html#h-7.5.4 ) ★画像は行内要素ですからブロック要素の内部に書きます。  この場合「そのセクションの画像」ですから、それを示すためにfigureというclass名をつけたDIVないしP要素が良いでしょうね。 >僕のようにタグの種類ごとに書き、css(absolute)でレイアウトを整える のは問題(文法的にもSEO的にも)があるのでしょうか?  はい、重大な誤りです。検索エンジンはあなたのページの内容を正確に理解できないでしょう。HTMLの目的は 【引用】____________ここから HTMLは、どんな環境からもWebの情報を利用できるようにすべきだという方針の下に開発されている。例えば、様々な解像度や色深度のグラフィックディスプレイを持つPCや、携帯電話、モバイル機器、音声入出力機器、帯域が広いコンピュータや狭いコンピュータ、等の環境である。  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[Introduction to HTML 4 (ja)( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/intro/intro.html#h-2.2.1 )]より  なのですから・・  

trip-trip-trip
質問者

お礼

丁寧な回答ありがとうございます。 HTMLのことについてもよくわかりました。 ORUKA1951さんの回答で <div class="section">  <h2 class="">1つ目のセクションのタイトル</h2>  <div class="figure"><img src="1つ目のセクションの画像"></div>  <p class="">1つ目のセクションの文章</p> </div> とありますが、 僕はいつも  <h2 class="">1つ目のセクションのタイトル</h2>  <img src="1つ目のセクションの画像" class="">  <p class="">1つ目のセクションの文章</p> のようにdivは使わずに書いています。  やはり、1つのコンテンツのブロックということを  divで表記しているのでしょうか?  僕のこのやり方や考え方は間違いでしょうか? 追加の質問で申し訳ないですが、回答お願いします。

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

その他の回答 (2)

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

>のようにdivは使わずに書いています。  それは、文法的には間違いではありません。しかし、仕様書には下のように書かれています。 『DIV要素とSPAN要素は、id属性及び class属性と併用することで、文書に構造を付加するための一般機構を提供する。 ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/global.html#h-7.5.4 )』 『次の例は、見出しとそれが導くテキストとをDIV要素で連結する方法を示している。こうすることで、スタイルシートによってセクション単位のスタイル定義(背景色やフォント設定等)を行うことができる。 ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/global.html#h-7.5.5 )』  このあたりを読むと、DIVの本来の使い方が詳しく示されています。  ところが、これらの文章は仕様書のすべてを理解している人ならともかく、そうでない多くの人には読み飛ばされてきました。その反省からHTML5では、『文書をよりよく構造化するために、次の要素が新しく追加されました。 ( http://standards.mitsue.co.jp/resources/w3c/TR/html5-diff/#new-elements )』  ・・section・article・aside・hgroup・header・footer・nav・・・  これらは、HTML4.01で想定していた『『DIV要素とSPAN要素は、id属性及び class属性と併用することで、文書に構造を付加する』のidやclass名です。 <div class="section">  <h2>1つ目のセクションのタイトル</h2>  <div class="figure"><img src="1つ目のセクションの画像"></div>  <p>1つ目のセクションの文章</p> </div> <div class="section">  <h2>2つ目のセクションのタイトル</h2>  <div class="figure"><img src="2つ目のセクションの画像"></div>  <p>2つ目のセクションの文章</p>  <div class="section>   <h3>項見出し</h3>   <p></p>  </div>  <div class="section>   <h3>項見出し</h3>   <p></p>  </div> </div> <div>  <h2 class="">3つ目のセクションのタイトル</h2>  <div class="figure"><img src="3つ目のセクションの画像">  <p>3つ目のセクションの文章</p> </div>  こうしてセクションごとにdivで括ってあると、スタイルシートで章番号や項目番号を振ることができます。 --レンダリング結果------------------------------- 一章 1つ目のセクションのタイトル  1つ目のセクションの文章 ■画像 二章 2つ目のセクションのタイトル  2つ目のセクションの文章 ■>  二章1項 項見出し   記事  二章2項 項見出し   記事> 三章 3つ目のセクションのタイトル  3つ目のセクションの文章 ■  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで、スタイルシートのcounterを使ってます。  このように、文書構造を補完する目的でDIVを適切に利用するとHTMLもスタイルシートもわかりやすくなります。たとえば div.section div.section{font-size:0.95em;} とするとスタイルシートを読むだけで、章→項→小項と下がるたびにフォントサイズを少しずつ小さくなるように指定してあることが一目瞭然ですね。  

trip-trip-trip
質問者

お礼

またまた丁寧な回答ありがとうございます。 HTMLを覚えるよりも、HPを作成することを 考えていたため、基本的なことをとばしていた感じがします。 回答の中の例文を見てみると、非常にわかりやすかったので これからはしっかりと勉強をしながらやっていこうと思います。 2度の回答ありがとうございました。

すると、全ての回答が全文表示されます。
  • notnot
  • ベストアンサー率47% (4903/10364)
回答No.1

HTMLはコンテンツの構造を反映した形で記述します。 コンテンツがいくつかあって、個々のコンテンツごとに、タイトルとか画像とか説明文という属性があるわけなので、後者が自然です。 前者の書き方は間違っていると言っても言いすぎでは無いでしょう。 構造を反映して記述しておくと、仮にブラウザがCSSファイルの取得を失敗しても、レイアウトが崩れるのはしょうがないとして、内容を把握できるというのもありますね。

trip-trip-trip
質問者

お礼

回答ありがとうございます。 確かに、コンテンツとして僕の書き方(前者)は 不自然ですよね。

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

関連するQ&A