まだ、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.dt …
<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.dt …
<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書式」(この言葉が妥当かは分かりませんが)に修正や追加するものがあったら教えてください。
回答よろしくお願いします。
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 などの学習に夢中になった方がずっと生き生きしていると思いますよ。
Redpythonさんの言われるとおりです。まずは作りながら覚えるようにしたいと思います。
「推奨される…」と質問したのは最低限の要素(html・head・body)だけだとトラブルが起こるのではないかと思ったからです。詳しくは分かりませんが例えば文字化けなど。
全てのトラブルを回避する書式というものを知りたかったのです。
XHTMLのところで自分の認識は間違っていました。すいません。
特別、厳密型にする必要はないんですね。コンピューターの考えからするとはっきりと定めた法則にしたがってやるのが正しいと思っていました。しかし、HTML自体が曖昧さがあるので何とも言えませんが…。
用途や必要性に合わせてHTMLのタイプを変えたり、記述するのがいいんですね。
やはり実践で練習していくのがいいみたいですね。これからがんばってHPを作っていきたいと思います。
ありがとうございました。
No.4
- 回答日時:
No1です。
もう少し回答の仕方を変えますと、
もし、お仕事で必要ということでしたら、きちんとした知識が必要かも知れません。
>「推奨される…」と質問したのは最低限の要素(html・head・body)だけだとトラブルが起こるのではないかと思ったからです。詳しくは分かりませんが例えば文字化けなど。
確かにそうですね。トラブルは起こります。
ただ、真に初心者なのでしたら、変に文字コード等を指定するよりは、何も指定しないほうがむしろトラブルは回避できるような気はします。
文字コードのよくあるミスについてだけ、簡単に述べておきます。
初心者の方がやりがちなミスとして、EUC、Shift-JIS、UTF-8等の指定と、テキストファイルの保存形式が違う、ということがあります。質問者さまが「文字エンコード」とお書きになられたところに、EUCなり、UTF-8なりを入れておけば、そこから下の文字については「指定の文字コードで書かれているんだな」ということを、ブラウザ側で解釈します。ですが、ファイルをEUCで保存しているのに、UTF-8と指定していたり、Shift-JISで保存しているのにEUCと指定していることがよくあります。わたしが初心者の方と仕事をするときには、よくこのことを聞かれますね。
>全てのトラブルを回避する書式というものを知りたかったのです。
雛形のレベルでそのご要望に完全にお答えできる答えものというのは存在しません。
トラブルの種類にもよりますが、見え方の違いを完全になくすような記述というのは、htmlでは困難な部類の作業になります。とりわけ、習熟したウェブデザイナーなどはそこをどうにか制御する細かいノウハウを大量に身につけているものですが、それを簡潔にお教えするのはちょっと厳しいですね。「クロスブラウザ対策」などと言われている部類の技術になるでしょうか。 ※一応、最近はまだ昔よりも最新ブラウザのhtml解釈が標準に統一されつつあるので、ましかもしれません。
二度も回答していただいて、本当にありがとうございます。
今のところまだ仕事としてやろうかは決めていません。しかし、仕事としてやるのであれば確かにちゃんとした知識と、数をこなして十分な経験が必要になってきますよね。
初心者の場合は、かえって何も指定しない方がいいんですね。
なるほど。保存した形式とHTML文書で指定した形式が違うと、トラブルの原因になるんですね。
やはり、100%とはいかないんですね。どのようにすればトラブルを防ぐことができるか、積み重ねた経験で、そこをうまくやるのが本職の領域になるんですね。
ありがとうございました。
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.dt …
<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は書けない。
いうことを知っておこう。
ほぼ寝言みたいなことですが、何か役に立てばいいんですが、、、
なるほど。meta要素とlink要素が多いんですね。
文字コードは「Shift_JIS」が一般的だと思い、あまり調べてませんでした。もっと勉強したいと思います。
ブラウザの標準モードと互換モードは全く知りませんでした。DTDのタイプとブラウザ(種類とバージョン)によってレイアウトが変わってきてしまうんですね。勉強になります。
う~ん、バグはどのソフトにも、つきものですもんね。
新たに知識が得られて嬉しいです。これからは、実践で経験していきます。
ありがとうございました。
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を作ってみてくださいまし。
確かに実践してからの方がいいですね;
調べてみるとその都度新しい用語が出てきて、それだけでかなり時間がかかるようです。
まずはタグ打ちの練習をしようと思います。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS 私の能力からして間違っていないような気がします。 4 2022/09/30 13:24
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
- ASP・SaaS FC2 BLOG <AUDIO TAGを入れプレビューはOk テーンプレートを更新すると ✖ 1 2023/08/14 11:40
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- HTML・CSS (Javascript)印刷するファイルに応じて印刷プレビュー画面で用紙を自動的に切り替えたい!! 2 2022/04/11 12:04
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- HTML・CSS html/cssで要素が出てこなくて困ってます 1 2022/12/31 16:59
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<!DOCTYPE html>あってますか?...
-
<!DOCTYPE html>あってますか?...
-
Tomcat-ApacheでHTMLを表示させ...
-
記事のソースとは?
-
SVGをobjectタグで埋め込み・表...
-
jQueryのloadで外部HTMLを読みたい
-
更新ボタンを押さないと更新さ...
-
css ,videotタグ。ホームページ...
-
わざと文字化けさせるには
-
POSTしたデータの文字コードがu...
-
<!DOCTYPE html>あってますか?↑
-
body内にmetaタグを記述は問題...
-
Duolingo のソースコードの名前...
-
iframe内の表示を常に最新にしたい
-
コメント挿入は<head></head>で...
-
Excelで、社外秘(閲覧のみ)と...
-
HTMLからフォルダを開きたい
-
社内で利用するWebサイトを立ち...
-
HTMLで別PCのフォルダを開く
-
リンク先からリンク元の、同じ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
css ,videotタグ。ホームページ...
-
POSTしたデータの文字コードがu...
-
Duolingo のソースコードの名前...
-
body内にmetaタグを記述は問題...
-
iframe内の表示を常に最新にしたい
-
ページ全体を中央に配置したい...
-
HTML上に貼り付けたPDFが表示さ...
-
HTMLソースにない文字がブラウ...
-
HTMLファイルのインクルードで...
-
Google検索でサイト説明文が文...
-
文字化けを故意に表示したい
-
自分で<head>内をかけない場合...
-
FFFTPでの文字化け
-
根号の書き方について
-
表示時に1回だけリロードさせ...
-
リンクボタンにgifアニメを使え...
-
COLDFUSIONの文字化け
-
HTMLでwebサイトを作ってるので...
-
Content-Typeの大文字
-
borderでa:hover下線表示させる...
おすすめ情報