HTMLとは

HTMLとは、Hyper Text Markup Languageの略である。 これを日本語でそのまま表すならば、「ハイパーテキストに印付けするための言語」ということになる。 これでは何のことやらさっぱりわからないので、もう少し詳しく説明しよう。

まずはハイパーテキストについてだが、インターネット上においては、ある文書と別のある文書の連携が不可欠である。 これは「ハイパーリンク(或いは単にリンク)」という機能により実現されている。 NetscapeやInternet Explorerなどのウェブブラウザで、マウスをクリックすると別のページに移動するのは、このハイパーリンク機能によるものだ。 ハイパーテキストとは、このハイパーリンク機能を持ったテキストのことを指していうものだ。

次に印付けについてだが、これは文書を構造的に記述するために不可欠なものである。 構造的というと難しく受け止められるかもしれないが、要するに文書を題名や見出し、段落などといった要素にわかりやすく区分するということだ。 こういったことは、一般の書籍などでは文字の大きさや種類などで視覚的に区別しているが、HTML文書は基本的にテキスト形式ファイルなので、文字属性は持たない。 そこで、HTMLでは「タグ」と呼ばれる記号によって要素を明示する。

長々と説明したが、詰まるところHTMLとは、単なるテキストにハイパーリンク機能とタグが付加されたというだけの代物である。 決してプログラミング言語のような大それたものでもないし、ウェブブラウザに対して表示方法を命令するほど偉くもない。 言語とはいっても、ワープロ文書を作成するのと同程度と思っていただいて結構だろう。

HTML文書を記述する前に

HTML文書を記述するにあたって注意すべきことがある。 HTML文書は視覚的な情報を一切持たない、いや持てないという点だ。 おや?と思われるかもしれないが、これは事実なのだ。 確かに世に溢れるウェブサイトの中には、HTMLに強引にレイアウト情報を埋め込んでいるものもあるが、これは過去の規格に基づくものであり、現行の規格では非推奨もしくは廃止されている。 ではレイアウトはどうやって行うのかというと、スタイルシートと呼ばれるものを用いるのだが、これについては後述する。 とにかく、HTMLはあくまで文書の構造を明示するものであって、レイアウトとは切り離して考えていただきたい。

さて、こんなシンプルなHTML文書を記述するために必要なのは、テキストエディタのみである。 最初のうちはそれこそOS付属のものでも問題ないだろう。 シンプルな言語だけに、必要な道具もこれ一つで十分なのである。 何もホームページ作成ソフトやら、HTMLエディタなる専用のソフトウェアを用意することはない。

HTMLの特徴

簡単な例文

かなり端折ってはいるが、ひとまずHTMLについての大まかな説明は終わりにして、実際のHTML文書を見てみよう。 次の例文をご覧いただきたい。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>簡単な例文</title>
</head>
<body>
<h1>簡単な例文</h1>
<p>HTMLは非常に簡単です。
</p>
</body>
</html>
				

いかがだろうか。 たった11行の短い例文だが、これでも立派なHTML文書である。 まだ意味がわからない部分が多かろうが、中でも「<>」という記号に囲まれた文字列が初心者には難解なのではないだろうか。 だが、逆にいうならこの部分のみがHTML特有の部分であり、それ以外は普通のテキストと何ら変わりはない。 そこで、まずはこの部分について詳しく説明しよう。

要素とタグ

さて先述の通り、タグとはHTMLにおける文書の要素を表すための記号だ。 そして、この「<>」に囲まれた文字列こそがタグの正体なのである。 タグには開始タグと終了タグがあり、それぞれ「<要素名>」、「</要素名>」と記述する。 つまり、一部の例外を除けば、一つの要素は「<要素名>要素の内容</要素名>」として表される。 例外とは、要素の内容が存在しない場合のことで、img要素が代表的だ。 img要素は画像を埋め込むための要素であり、詳しくは後述する。 さらに要素には、属性を設定できるものがある。 属性は開始タグの中に「<要素名 属性名="属性">」と記述する。

要素は入れ子式

例文を見て既にお気づきかもしれないが、HTMLの要素は例外なく入れ子式となっている。 入れ子とは、数式の括弧を想像していただければわかるだろう。 例えば、「<p>これは<em>段落</em>です。</p>」は正しいが、「<p>これは<em>段落です。</p></em>」は正しくない。

改行は無意味

HTML文書において、改行は意味を成さない。 例えば、「<p>これは(改行)段落です。</p>」としようが、「<p>これは段落です。 </p>」としようが、全く同じことなのだ。 ただ、タグに関しては途中で改行すると不具合が生じる場合があるので、これは避けるべきだ。 一般的には、例文のようにタグとタグの間で改行したり、長いテキストの句読点で改行したりすることが多い。

半角と全角

HTML文書において、半角文字と全角文字は明確に区別される。 まず、タグに使われる「<>/"=」などの記号は必ず半角で記述しなければならない。 また、要素名や属性名も半角のアルファベットで記述する。 大文字と小文字の区別はないが、最近の動向を見た限りでは小文字で記述するのが望ましい。 なお、「"」で囲まれた属性の部分に関しては、この限りではない。

マークアップの基礎

HTMLの大体の特徴はおわかりいただけただろうか。 それでは、今度は先程の例文を1行ずつ解説していこう。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
これはDOCTYPE宣言といって、HTMLのバージョンを宣言するものである。実はHTMLにもいろいろあって、複数の標準化団体から規格として勧告されているのだ。ここではW3C(the World Wide Web Consortium)という団体から勧告されているHTML 4.01 Strictという規格を採用することにしたが、初心者があまり気にする必要のない部分なので、初めのうちは最初の行に機械的に記述するだけで構わないだろう。
<html lang="ja">
html要素の開始タグである。ここからHTML文書が始まるものと考えておこう。なおlang属性は言語コードを示すもので、日本語で記述する場合は「lang="ja"」とする。
<head>
head要素の開始タグである。この要素内には直接文章の内容とは関係のないものを記述する。
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
HTML文書の文字コードを指定するための情報である。WindowsやMacでは一般的にシフトJISという文字コードが利用されているので、大抵の場合はこの行も機械的に記述するだけで構わないだろう。
<title>簡単な例文</title>
title要素である。その名の通り、そのHTML文書の題名であることを示す要素である。
</head>
head要素の終了タグである。
<body>
body要素の開始タグである。この要素内には実際の文章の内容を記述する。
<h1>簡単な例文</h1>
h1要素である。hはheadingの略で、見出しであることを示す要素である。hの後には1から6までの数字が入り、数が小さいほど上位の見出しとなる。
<p>HTMLは非常に簡単です。</p>
p要素である。pはparagraphの略で、段落であることを示す要素である。
</body>
body要素の終了タグである。
</html>
html要素の終了タグである。

付録1: スタイルシートの基礎の基礎

ここまでHTML文書の記述方法を一通り学んできたが、この状態のままでウェブブラウザに表示させると、何とも味気ないページになってしまう。 そこで、ごく簡単ではあるがスタイルシートの説明をしておこう。 ただし、今回はあくまでHTMLの解説が主体なので、説明はごく一部にとどめさせていただく。 スタイルシートに関するより詳細な文献は、WWW上で多数見られるので、そちらを参照して頂きたい。

さてスタイルシートとは、文書のレイアウトを定義するものである。 HTML文書に適用するスタイルシートとしては、一般的にはCSS(Cascading Style Sheets)と呼ばれるものが多用されている。 CSSを用いるとHTML文書の指定した要素に対し、一貫したレイアウトが適用されるため、簡便かつ効果的なデザインが可能となる。 では、何はともあれ実際のCSSを見てみよう。

@charset "Shift_JIS";
h1 {
	color: white;
	background-color: black;
	text-align: center;
}
				

まずはこれだけ記述して、先程のHTML文書と同じディレクトリに「style.css」という名前で保存してみよう。 そして、HTML文書のhead要素に次の各文を追加する。

<meta http-equiv="Content-Style-Type" content="text/css">
<link rel="stylesheet" href="style.css">
				

ここまでの作業が終了したら、ウェブブラウザでHTML文書を読み込んでみよう。 いかがだろうか。 h1要素の背景色が黒に、前景色が白に、また文字が中央寄せになっているはずだ。

このように、CSSを用いるとHTML文書の指定した要素に対し、フォントの色や大きさ、配置はもちろんのこと、文字間隔や枠の指定など、様々なレイアウトを適用することができる。 今回詳しい説明ができないのは残念だが、本格的にウェブページを製作してみたいという方は、WWW上の文献を参照してみてはいかがだろうか。

付録2: 基本的な要素のリファレンス

基本要素

次に示す要素は、HTMLの全体構造を表すものである。

html要素
HTML文書における最上位要素である。他の全ての要素はこの要素内に記述される。先述のlang属性は言語コードを示すもので、日本語で記述する場合は「lang="ja"」とする。
head要素
文書情報の内、直接文章の内容とは関係のないものであることを示す。主に記述するものとして、文書の題名や使用する文字コード・スタイルシート・スクリプトの情報などが挙げられる。
title要素
文書の題名であることを示す。文書の内容を簡潔かつ的確に表すものであることが望ましい。必ずhead要素内に記述しなければならない。また要素内にはタグを記述できない。
body要素
文書情報の内、実際の文章の内容であることを示す。

ブロック要素

ブロック要素とは、HTMLの文書構造の大枠を表すものである。 その内容には他のブロック要素や後述するインライン要素およびテキストを含む。

hn(heading 1-6)要素
その章や節などの内容を表す見出しであることを示す。nには1-6の数字が入り、数字が大きいほど上位の見出しとなる。
p(paragraph)要素
段落であることを示す。なおp要素にはブロック要素を含むことができない。
address要素
その文書の製作者への問い合わせ先であることを示す。一般的に、文書の先頭か末尾に配置される。

インライン要素

インライン要素とは、個々のテキストを修飾するものであり、必ずブロック要素内に配置される。 その内容には他のインライン要素やテキストを含む。

a(anchor)要素
ハイパーリンクのためのアンカーであることを示す。href属性で他の文書のURLを指定することで、リンク先に指定することができる。
img(image)要素
画像を埋め込むための要素である。src属性で埋め込む画像のURLを指定する。またalt属性で画像が表示できない場合の代替テキストを指定する。
em(emphasis)要素
他の部分に対して強調されていることを示す。
strong要素
他の部分に対してem要素よりもさらに強調されていることを示す。

まとめ

HTMLの概要とその記述方法について駆け足で説明してきたが、いかがだろうか。 ウェブ上のいわゆるホームページ作成講座をご覧になったことがある方ならば、たったこれだけなのかと不満に思われるかもしれない。 だが、HTMLに限って言うならば、これだけ理解していただければ十分すぎるほどである。 ここで解説したHTMLの特徴といくつかの要素に加え、必要があればリストやフォームなどの高度な要素を覚え、スタイルシートを利用できれば、立派なウェブページを公開できるほどのレベルにまで到達できるはずだ。