HTMLってなに?
HyperText Markup Language
HTMLとは、HyperText Markup Languageの略称。それぞれの単語の意味を追っていくと次のようになる。
- HyperText
- 複数のテキスト(文書)を相互に関連付け、結びつける仕組み(ハイパーリンク)。従来のテキストの能力を「超えたテキスト」といった意味で「HyperText」と名付けられた。
- Markup
- Markupとは、文章にマークアップする(目印を付ける)ことで、文章中での役割を記述しようという考え方。そのときに、役割を示すために使う目印になるものがHTMLタグである。
- Language
- Languageとは、本来は言語という意味だが、どちらかというと文法に近いように思う。Markupするときの決まりとか文法とかそんな感じでの理解でいいと思う。
要するに、HTMLって、文書に色々役割を持たせる言語って私は認識している。
HTML4.0/4.01
HTMLの規格を作っているW3Cが勧告したHTMLの決まりの最新版はHTML4.0/4.01である。 HTML4.0/4.01の特徴は、デザインに使うHTMLタグを使用しないことにしたことである。 デザインはCSSに任せ、HTMLでは、あくまで、文書の中での役割にHTMLタグを付ける本来の形に忠実になった。 HTML4.01は1997年12月18日に勧告されたHTML4.0を元に、幾度かの改定を経て、1999年12月24日に正式に勧告された。 最近になって、HTML5.0(名前は私が勝手にそう思ってるだけ)なるものを作るためにW3Cが動き始めた。 関係者の話から感じるに既存の最新web技術との連携が重視される方向である。 また、標準を新たに定めるにあたって、既存の技術との連携を重視する事で、混乱はさほど大きくないのではないかと一人で思ったりする。
STF(Strict, Transitional, Frameset)って?
多分、ここまで立ち入った話をしてもあまり意味はないのだが、まぁ、しっていても損はないので、一応書いておこう。 HTML4.01には、3種類のDTD(文書型定義)1がある。その3種類とは、「Strict」「Transitional」「Frameset」である。それぞれの簡単な説明を以下に記す。
- Strict
- Strictとは、いわば「正規のHTML」である。つまり、HTMLは文章の役割に応じてつけ、デザインはCSSに任せるという方針のもと、デザインに関するHTMLタグを認めないものである。余談ではあるが、このホームページもこのStrictにあたる。
- Transitional
- Transitionalは、現在最も数が多いであろうDTDである。HTML4.01が勧告されたからといって、一斉にこのHTML4.01(Strictのこと)に移行するのは不可能である。そこで、従来までのHTMLタグを使用可能とした、いわば、「移行のための互換性のあるHTML」である。デザインに関するHTMLタグも使用可能となっているために、割と簡単に作成することができる。
- Frameset
- Framesetとは、いわば、「フレームが使用可能な移行のための互換性のあるHTML」である。このことからもわかるように、Transitionalからさらにフレーム機能のHTMLタグを使用することができるようになっている。フレーム機能のHTMLタグが使用することができること以外は、Transitionalと差は無い。ちょっと昔までは、フレーム未対応のブラウザーのことを考えて〜なんて、よく言われてましたが、最近は、少なくなってきましたね。きっと、未対応のブラウザなんて、ほんの数%になったからなのかな?詳しい事情は知りません。
これから、HTMLでHPを作ろうとする人は、「Strict」でやって欲しくはあるが、デザインにこったものにしようとすると非常に難しくなる。そのため、時間に制約のある場合やHTMLに興味が無い場合は、Transitional、あるいは、Framesetでさっさと作ってしまうのも良いことだと思う(多分、今後TransitionalやFramesetがまったく使えなくなるってことは無いと思いますし……)。ちなみに、このDTDが良くわからない人はFramesetにしておけば、まぁ、問題は起きないと思う。
HTMLタグ
HTMLタグの構造
HTML文書はHTMLタグを使用したマークアップ言語である。HTMLタグは、開始タグ(Start tag)、内容(Content)、終了タグ(End tag)の3つの部分からなる。タグには、必ず『タグ名』が必要となる。そのうち開始タグには『属性名』と『属性値』を指定することもできる。
| <BIG class="mihon">『見本』</BIG> | ||||
| HTML文書の一部 | ||||
| <BIG class="mihon"> | 『見本』 | </BIG> | ||
| 開始タグ(Start tag) | 内容(Content) | 終了タグ(End tag) | ||
| BIG | class | "mihon" | ||
| タグ名 | 属性名 | 属性値 | ||
上の表はあくまでも典型的な例である。タグの中には文脈から一意的に判断できる場合などに限り「内容を持たないもの(開始タグのみ)」、「タグ省略(無記述)」などの特殊な場合もある。 また、属性値の指定できる属性の数は一つのタグに0個以上である。よって属性名と属性値は同時に複数指定することができる。属性値は「定義されているもの」「初期値なし」「ブラウザに依存するもの」などがある。
HTMLタグの書き方
最初に言っておきます。 余談です。 HTMLタグの文字の書き方についてです。 よくHTMLタグ関連の本やHPでは、タグ名(あるいは、属性名)が大文字だったり、小文字だったりしています。 どっちが良いかというと、「どっちでもいいよ」ってのが正解です。 一応、外国の様子や本の様子を見ていると、タグ名が大文字、属性名は小文字ってのが主流なようです。 英語の中でタグ名が大文字で書いてあれば、目立ってソースの確認が楽になるなどの理由が考えられますが、日本語でサイトを作っている分には、英語(小文字でも)なので、大いに目立つので、どっちもいいんじゃないかな〜とか考えてます。 ということで「どっちでも良い」って結論にしときます。 しかし、今の話は、タグ名と属性名についてのみの話です。他の属性の値などに関しては、大文字、小文字をはっきりと区別します。 また、特殊な文字は極力使用を控えるべきです。 思わぬところでの誤動作につながります。 また、ファイル名についてですが、基本的にはすべて小文字が理想では無いか?と、考えています。 サーバーによっては、ファイル名を拡張子も含め、大文字と小文字では別のものと判断します。 転送時にすべて小文字にする処理をしておくと、拡張子で大文字、小文字の差が出てしまうなどの誤動作を防げると思うためです。 また、サーバーによっては、転送したファイルをすべて小文字で認識してしまうものもあるようです。 (まだ、逆には出会ったことはありませんが、もしかしたら、あるかも……。そのときは、あきらめるしかないかも……。)
HTML文書の構造
HTML文書は「文書型宣言」「HTML要素」からなる。「HTML要素」には、「HEAD要素」「BODY要素」がある。また、「HEAD要素」「BODY要素」にも、それぞれいくつかの要素があるのが普通である。
文書型宣言
DTDは文書型宣言で宣言したバージョンのものが選択される。
HTML要素
HTML文書の内容はすべてこの要素に記述される。
HEAD要素
HEAD要素には、HTML文書の情報が入る。たとえば、HTML文書のタイトルであったり、HTML文書の作者の情報、検索エンジンにどの単語で検索がヒットするようにするかなど。 例)META要素、LINK要素、TITLE要素など
BODY要素
文書の中身そのものはここに書く。見出し、段落、リンクなどの文書の構造や役割を示す情報はここに書き込む。 例)DIV要素、P要素、H1要素など
用語
- DTD
- Document Type Definition(文書型定義、DTD)とは、何か?簡単に説明するならば、文法書とか、テンプレートと考えていいだろう。(多分)