• ベストアンサー

推奨するHTMLの基本骨格

まだ、HTMLのタグも知らない初心者です。 通常、基本骨格というとhtml・head・body要素からなりますが、推奨されているような基本骨格というのはどういうものでしょうか? 自分なりに調べてみると、 ---------------------------------------------------------------- HTML4.01Strictの場合 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html lang="言語コード">「*1」 <head> <meta http-equiv="Content-Type" content="MIMEタイプ;charset=文字エンコード">「*2」 </head> <body> </body> </html> *1:要素内に使用している「言語コード」の言語を宣言(サーチエンジンのロボットに何語で書かれているか判別できる、文字化け防止) *2:文書を読み込むときに文書形式は「MIMEタイプ」、記述されている文字コードは「文字エンコード」という情報を、ユーザーエージェントに与える(文字化け防止) 言語コード:ja(日本語) MIMEタイプ:text/html(HTML4.01ではHTML文書としては、「text/html」以外のMIMEタイプの使用を禁止している) 文字エンコード:Shift_JIS(WindowsやMacでは「Shift_JIS」が主流) ---------------------------------------------------------------- XHTML1.0Strictの場合 <?xml version="1.0" encoding="文字エンコード" standalone="no"?>「*3」 <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="言語コード" lang="言語コード">「*4」 <head> <meta http-equiv="Content-Type" content="MIMEタイプ; charset=文字エンコード" />「*5」 </head> <body> </body> </html> *3:スタンドアロン宣言はこの文書以外に参照すべきDTDがあるかどうかを指定するもので、XHTMLではどのバージョンでも「no」でよい。 *4:XHTML1.0では、XHTMLの環境に対応していないことへの配慮として、lang属性とxml:lang属性の両方を指定する。 *5:「*2」と同様。 言語コード:ja(日本語) MIMEタイプ:text/html(XHTMLの「MIMEタイプ」で推奨されているのは「application/xhtml+xml」だが、IE7でも対応し切れていないので、MIMEタイプは「text/html」にするしかない) 文字エンコード:Shift_JIS(WindowsやMacでは「Shift_JIS」が主流) ---------------------------------------------------------------- XHTML1.1の場合 <?xml version="1.0" encoding="文字エンコード" standalone="no"?>「*6」 <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="言語コード">「*7」 <head> <meta http-equiv="Content-Type" content="MIMEタイプ; charset=文字エンコード" />「*8」 <title></title>「*9」 </head> <body> </body> </html> *6:「*3」と同様。 *7:lang属性はXHTML1.1では、後方互換の指定は全て非推奨のため記述できない。 *8:http-equiv属性はXHTML1.1では、HTML互換のため非推奨。 *9:head要素の中には、文書の題名を表すtitle要素が一つ現れなければならないので記述しなければならない。 言語コード:ja(日本語) MIMEタイプ:text/html(XHTMLの「MIMEタイプ」で推奨されているのは「application/xhtml+xml」だが、IE7でも対応し切れていないので、MIMEタイプは「text/html」にするしかない) 文字エンコード:Shift_JIS(WindowsやMacでは「Shift_JIS」が主流) ---------------------------------------------------------------- となりました。 また、XHTMLのMIMEタイプでXHTMLであってもブラウザが対応してないため「application/xhtml+xml」にはできないとありましたが、「application/xhtml+xml」が好ましいと書いてあるサイトもあって「text/html」とどちらが正しいのか分かりません。 また、「*8」は非推奨となっていますが、このmeta要素の部分の記述をしているところもあるので記述するのかしないのかはっきり分かりません。 この「推奨する基本骨格のHTML書式」(この言葉が妥当かは分かりませんが)に修正や追加するものがあったら教えてください。 回答よろしくお願いします。

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

  • ベストアンサー
  • Redpython
  • ベストアンサー率56% (9/16)
回答No.2

こんにちは。 > まだ、HTMLのタグも知らない初心者です。 ならば、実践に基づいた学習の前に、概念や勧告をそこまで掘り返して調べる必要は無いと存じます。 と申しますのも、『「推奨する基本骨格のHTML書式」(この言葉が妥当かは分かりませんが)』という、自らの妥当性に関するコメントが的を得ているからです。 miya_HN 殿の仰る通り、HTML の基本骨格というのは、純粋に html・head・body (frame をベースとするページであれば body でなく frameset)要素からなると言う理解で必要十分です。 ではなぜ「推奨される」とする記法がいくつか定義されているのでしょう? お調べになったマークアップ・ランゲージの中に XHTML がございますが、「XHTML(Extensible HyperText Markup Language):Webページを記述するためによく使われるHTMLを、XMLに適合するように定義し直したマークアップ言語。(by e-word)」とあるように、「基本骨格」と言うよりも、基本として以前に定義されていた HTML を、後に策定された XML に包括的に取り込む指向として再定義された「拡張骨格」なんです。 同様にして、「HTML4.01Strict」とありますが、なぜ厳密化する必要があるのでしょう? それは、厳密化しなくてもルーズなコーディングでいい加減に HTML を記述しても、ある程度ブラウザ側がルーズなコーディングをカバーしてくれるからです。すなわち、(Strict でない)ルーズなコーディングをカバーするためのロジックがブラウザ側に組み込まれているからです。 当然ブラウザの容量は、この分の(コーディングする人がちゃんと書けば必要ではなかった)プログラムだけ容量が大きくなる訳です。 では、PDA やモバイルフォンのブラウザはどうでしょう? ブラウザにこんなに大きな容量を使ってられませんね。 と言う事で、「HTML を記述する人がちゃんとコーディングしましょう」という流れになってきたんです(ブラウザの開発や試験などに携わる業務を経験すれば、この辺の事が分かるでしょう)。 話は戻りますが、どの環境やどのブラウザのためにサイトを構えるかを考え、記述するマークアップ・ランゲージをチョイスしましょう。 モバイル用のサイトなら、ある特定のモバイルフォンが、どのマークアップ・ランゲージの表示をサポートしているかをチェックし、それからコーディングすれば良いでしょう。 まぁ、本音を言えば、初心者ならそんなことよりもガツガツ HTML、CSS、Javascript、PHP、Java、Database、Web Server などの学習に夢中になった方がずっと生き生きしていると思いますよ。

miya_HN
質問者

お礼

Redpythonさんの言われるとおりです。まずは作りながら覚えるようにしたいと思います。 「推奨される…」と質問したのは最低限の要素(html・head・body)だけだとトラブルが起こるのではないかと思ったからです。詳しくは分かりませんが例えば文字化けなど。 全てのトラブルを回避する書式というものを知りたかったのです。 XHTMLのところで自分の認識は間違っていました。すいません。 特別、厳密型にする必要はないんですね。コンピューターの考えからするとはっきりと定めた法則にしたがってやるのが正しいと思っていました。しかし、HTML自体が曖昧さがあるので何とも言えませんが…。 用途や必要性に合わせてHTMLのタイプを変えたり、記述するのがいいんですね。 やはり実践で練習していくのがいいみたいですね。これからがんばってHPを作っていきたいと思います。 ありがとうございました。

その他の回答 (3)

  • compequal
  • ベストアンサー率42% (61/145)
回答No.4

No1です。 もう少し回答の仕方を変えますと、 もし、お仕事で必要ということでしたら、きちんとした知識が必要かも知れません。 >「推奨される…」と質問したのは最低限の要素(html・head・body)だけだとトラブルが起こるのではないかと思ったからです。詳しくは分かりませんが例えば文字化けなど。  確かにそうですね。トラブルは起こります。  ただ、真に初心者なのでしたら、変に文字コード等を指定するよりは、何も指定しないほうがむしろトラブルは回避できるような気はします。  文字コードのよくあるミスについてだけ、簡単に述べておきます。  初心者の方がやりがちなミスとして、EUC、Shift-JIS、UTF-8等の指定と、テキストファイルの保存形式が違う、ということがあります。質問者さまが「文字エンコード」とお書きになられたところに、EUCなり、UTF-8なりを入れておけば、そこから下の文字については「指定の文字コードで書かれているんだな」ということを、ブラウザ側で解釈します。ですが、ファイルをEUCで保存しているのに、UTF-8と指定していたり、Shift-JISで保存しているのにEUCと指定していることがよくあります。わたしが初心者の方と仕事をするときには、よくこのことを聞かれますね。 >全てのトラブルを回避する書式というものを知りたかったのです。  雛形のレベルでそのご要望に完全にお答えできる答えものというのは存在しません。  トラブルの種類にもよりますが、見え方の違いを完全になくすような記述というのは、htmlでは困難な部類の作業になります。とりわけ、習熟したウェブデザイナーなどはそこをどうにか制御する細かいノウハウを大量に身につけているものですが、それを簡潔にお教えするのはちょっと厳しいですね。「クロスブラウザ対策」などと言われている部類の技術になるでしょうか。 ※一応、最近はまだ昔よりも最新ブラウザのhtml解釈が標準に統一されつつあるので、ましかもしれません。

miya_HN
質問者

お礼

二度も回答していただいて、本当にありがとうございます。 今のところまだ仕事としてやろうかは決めていません。しかし、仕事としてやるのであれば確かにちゃんとした知識と、数をこなして十分な経験が必要になってきますよね。 初心者の場合は、かえって何も指定しない方がいいんですね。 なるほど。保存した形式とHTML文書で指定した形式が違うと、トラブルの原因になるんですね。 やはり、100%とはいかないんですね。どのようにすればトラブルを防ぐことができるか、積み重ねた経験で、そこをうまくやるのが本職の領域になるんですね。 ありがとうございました。

  • exists
  • ベストアンサー率62% (27/43)
回答No.3

<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html lang="ja" xml:lang="ja" xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <meta http-equiv="content-script-type" content="text/javascript" /> <meta http-equiv="content-style-type" content="text/css" /> <meta name="author" content="" /> <meta name="keywords" content="" /> <meta name="description" content="" /> <link rev="made" href="mailto:" /> <link rel="stylesheet" href="" media="" /> <link rel="start" href="" /> <link rel="prev" href="" /> <link rel="next" href="" /> <link rel="help" href="" /> <title></title> </head> <body> </body> </html> こんにちは、 テキストファイルから、html作る時には、DTD毎に上のような雛形を作って使っています。 文字コード:Shift_Jis は、もう少し調べたほうがいいかも、 windows UTF-8とか使えると思うよ。 xhtmlで書くつもりなら、utf-8で書くのが一番簡単だと思うよ。 ブラウザの標準モード、互換モード。ここ肝だから、覚えといたほうがいいよ。 それと、W3Cやhtmllint等で検証したから、どんなブラウザにでも正常に表示できる。なんて、考えちゃだめだよ。 ブラウザには、バグがあるということも忘れちゃいけない。 xhtml1.0なんかで、完全なhtmlを作って、IE6あたりで試してみれば、標準モードで動作するはずのブラウザが、互換モードで動いていたりするということがあるので、正しいソースを記述するだけじゃ、htmlは書けない。 いうことを知っておこう。 ほぼ寝言みたいなことですが、何か役に立てばいいんですが、、、

miya_HN
質問者

お礼

なるほど。meta要素とlink要素が多いんですね。 文字コードは「Shift_JIS」が一般的だと思い、あまり調べてませんでした。もっと勉強したいと思います。 ブラウザの標準モードと互換モードは全く知りませんでした。DTDのタイプとブラウザ(種類とバージョン)によってレイアウトが変わってきてしまうんですね。勉強になります。 う~ん、バグはどのソフトにも、つきものですもんね。 新たに知識が得られて嬉しいです。これからは、実践で経験していきます。 ありがとうございました。

  • compequal
  • ベストアンサー率42% (61/145)
回答No.1

 「タグも知らない初心者」の方でしたら、いきなりこの知識から入るのは、あまりオススメしません。というか、一から解説するのも疲れるのでちょっと厳しいですね。。。  htmlは「ゆるく使える」言語です。間違ってもOKです。「推奨される」HTMLからいきなり入ると、面倒です。というか、htmlをまず、学びたい、使ってみたい、ということでしたら、下記のページで充分です。 とほほのWWW入門 http://www.tohoho-web.com/wwwbeg1.htm#Html 推奨されるhtml云々というのは、上記の内容を実践して、htmlファイルを10個か、20個ぐらい自力で書けるようになったら、もう一度聞いてみてください。「推奨する基本骨格のHTML書式」なんて覚えhtmlを書いている人は、たぶんhtmlを直接タグで書いている人の間でも、1%にも満たないと思います。基本的には極めたいと思う人でないのであれば、無視してよい知識です。 htmlのバージョン宣言なんぞせずに、まずは<html><head></head><body></body></html>の最小の要素でのhtmlを作ってみてくださいまし。

miya_HN
質問者

お礼

確かに実践してからの方がいいですね; 調べてみるとその都度新しい用語が出てきて、それだけでかなり時間がかかるようです。 まずはタグ打ちの練習をしようと思います。 ありがとうございました。