HTMLの作り方

実際にHTMLにどう書けばいいのかを紹介しています。特に必要な物だけに絞って書いています。 ここに書いていない事(特殊なこと)をしたい場合はCSSを使ったり、他のサイトを調べたりしてみてください。 (方法があるにはあるけど、オススメできないという記述方はいくつもあります。)

タグの使い方

基礎用語

HTMLを学習するときに知っておくべき用語を説明します。
要素1つの"文章の意味"のまとまりのことです。開始タグから終了タグまでが1つの要素です。 A要素はリンク、H1要素は見出し、という風に名前や役割が最初から決められています。
タグ要素の名前を「<」と「>」で囲った物のことです。
開始タグ<要素名>と書き、範囲の開始点を示します。
終了タグ</要素名>と書き、範囲の終了点を示します。 省略できる要素も存在しますが、そうでない要素には忘れずに付けましょう。
ネスト要素の中にさらに他の要素を含ませることです。
属性要素の設定項目です。<要素名 属性名="属性値">と書き、要素の細かい設定をします。(大きさやリンク先など) スペースで区切って複数設定できます。
属性値属性について指定するもので、属性によって違うものが指定できます。 数字の場合と文字の場合があり、何を書くべきかは要素によって決まっています。

↑ページトップへ

基本構文

文字に意味を与えるには<要素名 属性名="属性値">・・・</要素名>という風に文字を囲みます。 これで「・・・」の部分に意味が与えられます。大文字と小文字の区別はありません。 要素の中に要素を入れて使うこともできますが、要素を閉じるときはその中にある全ての要素を閉じて下さい。

・誤った記述例

<B>ABC<I>DEF</B>GHI</I>

・正しい記述例

<B>ABC<I>DEF</I></B><I>GHI</I>

まずはただのテキストを用意しましょう。そして、そのテキストに意味を与えていきましょう。 「タグの概要」を参考に、タグを付け加えていきます。

・用意するテキストの例

☆トマト日記☆
(ここにタイトル画像を表示!)
こんにちは、私のホームページにようこそ!
まずは自己紹介をしようと思います。
→自己紹介

属性を指定する必要がないときは省略します。 終了タグが必要ない場合は省略します。(※ 必要か必要ないかは自分で判断するものではありません。)  また、テキスト内の改行とタブは無視されます。作るときに見やすくなるように積極的に使いましょう。

・HTMLの記述例

<HTML>
<HEAD>
<TITLE>トマト日記</TITLE>
</HEAD>
<BODY>
<H1>☆トマト日記☆</H1>
<IMG src="title.bmp" alt="タイトル画像">
<P>
こんにちは、私のホームページにようこそ!<BR>
まずは自己紹介をしようと思います。
</P>
<!-- ここからコンテンツ一覧 -->
<A href="intro.html">→自己紹介</A>
</BODY>
</HTML>

拡張子を「.html」に変えて保存すればHTMLは完成です。(フォルダのツールバーにある ツール→フォルダオプション→表示→詳細設定→「登録されている拡張子は表示しない」のチェックは外しておきましょう。)

HTMLに書いたものを表示させたくない時は「コメント」を使います。 「<!--」から「-->」までの部分は表示されなくなりますので、HTMLを作る際のメモとして使いましょう。

↑ページトップへ

タグの概要

HTMLとして定義する

内容はともかく、まずはその文章がHTMLであることをブラウザに教える必要があります。 これらのタグが無いと、ただのテキストファイルとして認識されてしまいます。
<HTML>指定した範囲がHTMLであることを意味します。
<!DOCTYPE>HTML要素の前で使い、HTMLのバージョンを示します。終了タグはありません。
<HEAD>HTML要素内で使い、指定した範囲がヘッダー(実際には見えない部分)であることを意味します。
<META>HEAD要素内で使い、HTMLの詳細情報を指定します。終了タグはありません。 これが無くてもブラウザは適当に解釈してくれます。(それでは困る場合もありますが。)
<TITLE>HEAD要素内で使い、指定した文字をページのタイトルとして使います。(タイトルバーの表示やブックマークの名前など)
<BODY>HTML要素内で使い、指定した範囲が本文であることを意味します。
本当に必要なのはHTML要素、HEAD要素、BODY要素の3つです。後は必要に応じて付け加えます。 ブラウザはとても親切なので、META要素などは指定しなくても目立った問題は起こりませんが、 文字化けの頻発などの問題が発生しかねません。つまり、設定するに越したことはないという事です。

よく分からない内は、とりあえず下の例を写しておきましょう。 あとはTITLE要素とBODY要素の中身だけを変えていけば問題ありません。

・HTMLの記述例

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML lang="ja">
<HEAD>
<META http-equiv="Content-Type" content="text/html"; charset="Shift_JIS">
<TITLE>私のホームページ</TITLE>
</HEAD>
<BODY>
本文
</BODY>
</HTML>

・実際の表示

本文

HTML要素やBODY要素にも属性値はあります。例えばHTML要素のlang属性は、 国際化への対応として文章の言語情報を指定できます。日本語なら"ja"、英語なら"en"です。

↑ページトップへ

見出しと段落を指定する

「見出し」とは文章の表題のことです。「段落」は本文を大まかに区切った一纏まりの文章です。
<H1>〜<H6>指定した文字を見出しにします。1〜6まで数字を変えると、それに応じたランクの見出しとなります。ランクが上の文字の方が大きく表示されます。改行が伴います。
<P>指定した文字を段落にします。改行と下の空白が伴います。
<BR>強制的に改行します。終了タグは書きません。
P要素を改行のために使うのは、有名な勘違いです。あくまで段落と段落を分ける目的で使います。 どうしても改行したい場合はBR要素を使いましょう。ただし、BR要素を連続して使うのはできるだけ避けましょう。 (指定しなくても画面右端で自動的に改行されます。)

H1〜H6の数字は見出しのランクに合わせて変えていきましょう。もちろんH1が最初です。同じランクの見出しが複数あっても問題ありませんが、H1の次にいきなりH4を指定するようなことはやめておきましょう。

・HTMLの記述例

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html"; charset="Shift_JIS">
<TITLE>HTMLの作り方</TITLE>
</HEAD>
<BODY>
<H1>HTMLの作り方</H1>
<H2>見出しと段落を指定する</H2>
<P>「見出し」とは文章の表題のことです。<BR>
「段落」は本文を大まかに区切った一纏まりの文章です。</P>
</BODY>
</HTML>
↑ページトップへ

ハイパーリンクの指定

ハイパーリンクを指定するにはA要素を使います。クリックすることで他のファイルを開くことができるようになります。 (これを「アンカー」と言います。)  これを使わないページは「行き止まり」になってしまいます。せめて自分のwebサイト内は移動できるようにしないと、コンテンツを見てもらえません。

ただし、これだけでは意味がありません。以下の属性のどちらかを指定して使います。
<A href="url">「url」の部分に行き先のアドレスを指定します。相対指定と絶対指定があります。
<A name="name">「name」の部分に目的地としてのリンクの名前を指定します。
指定するURLはHTMLファイルだけとは限りません。絶対指定とはアドレスを最初から全て書くことです。 相対指定とは、フォルダの構造に着目して指定することです。 他のサイトに移動する場合は必ず絶対指定になります。

絶対指定はブラウザのアドレスバーに表示されるものと同じです。相対指定の方法は以下の通りです。

name属性の使い方は単純です。href属性で「page.html#jump」と指定すれば、「page.htmlの中のname="jump"と書かれたA要素」までスクロールします。 ここで「page.html」を省略して「#jump」とだけ書けば、現在のページの中から探します。 長い文章の見出しを探させるときなどに使うと便利でしょう。 名前は自由ですが、ページ内で被らないようにしましょう。

また、ターゲットフレームへのリンクというものがあります。 フレームを作ったときや、リンクを新規ウィンドウで開くときに使います。 フレームを作らない場合も、新規ウィンドウの開き方は覚えておいて損はありません。
<A target="_x">「_x」の部分にターゲットフレームの名前を指定します。リンクはそのフレームの中に開かれます。 以下の属性値を指定することも出来ます。
  • _blank...新規フレームで開く
  • _self....同じフレームで開く(初期値)
  • _parent..親フレーム(今のフレームを含むフレーム)で開く
  • _top....フレームを全て消して開く
<BASE
href="url"
target="_x">
HEAD要素内で使い、基準ターゲットを指定します。 「url」には相対指定の基準となるアドレスを絶対指定で書きます。普通はそのHTMLのアドレスを書きます。 「_x」はA要素と同じです。target属性を指定しない全てのA要素に反映されます。
新規ウィンドウで開くのは他のサイトへのリンクくらいに留めておきましょう。 頻繁に新規ウィンドウを開くようにすると、見づらいだけでなく、ブラウザにいらぬ負担がかかってしまいます。

・HTMLの記述例

ここをクリックすると戻ります→<A href="index.html" target="_blank">・トップページへ戻る</A>

・実際の表示

ここをクリックすると戻ります→・トップページへ戻る
↑ページトップへ

画像の表示

画像を表示するにはIMG要素を使います。この<IMG>が指定した画像と置き換わります。 終了タグはありません。また、改行を伴いません。
<IMG src="url">「url」の部分に表示する画像のアドレスを指定します。相対指定と絶対指定があります。
<IMG alt="text">「text」の部分に代替文字を指定します。画像が表示できない場合に、画像の代わりに表示されます。
<IMG width=x>「x」の部分に画像の幅(横の大きさ)を指定します。
<IMG height=y>「y」の部分に画像の高さ(縦の大きさ)を指定します。
URLの指定方法はA要素と同じです。画像ファイルでない物を指定しても表示されません。

widthやheightを指定すると、画像を読み込む前からそのサイズ分のスペースが確保されるのでレイアウトが崩れにくくなります。 ただし、画像の元のサイズと指定したサイズの比率によっては画質が乱れるので注意しましょう。

・HTMLの記述例

・・・<img src="image01.gif" alt="サンプル画像1">
・・・<img src="image01.gif" alt="サンプル画像2" width=200 height=80>

・実際の表示

・・・サンプル画像1 ・・・サンプル画像2
↑ページトップへ

文字の見た目を変える

文字がずっと同じスタイルだと、文章があまりに平淡になる恐れがあります。 それを回避したい人のためのタグがこれです。まとめて紹介します。
<B>指定した文字を太字にします。
<I>指定した文字を斜体(イタリック文字)にします。
<U>指定した文字を下線付きにします。(アンダーライン)
<S>
<STRIKE>
指定した文字を打ち消し線付きにします。
これらのタグは、あくまで見た目を変更するためだけのものです。厳密に言うと意味を持ちません。 おちゃらけた個人サイトなら何ら問題ありませんが、企業や団体などの公式なサイトを作る場合は多用はやめておきましょう。

・HTMLの記述例

普通の文字と比べて<B>太くしたり</B><U>下線をつけたり</U>出来ます。 <br>
これらは<U><B>重ねて使用</B>することも出来ます。</U>

・実際の表示

普通の文字と比べて太くしたり下線をつけたり出来ます。
これらは重ねて使用することも出来ます。
↑ページトップへ

語句の意味を指定する

ここで紹介するのは、見た目ではなく意味を設定するものです。もちろん見た目も変化しますので、効果的に使いましょう。 すべて同じスタイルだと、どこが重要なポイントなのかが分からなくなります。特に重要な語句にはできるだけ指定しておきましょう。
<EM>指定した文字を強調します。一般のブラウザでは斜体字になります。
<STRONG>指定した文字を大きく強調します。一般的には太字になります。
<SUB>指定した文字を下付き文字にします。行内にある他の文字よりも下に表示されます。
<SUP>指定した文字を上付き文字にします。これらは他の行に被ることはありません。
<INS>その文章が修正により追加された文章であることを意味します。一般的には下線が付きます。
<DEL>その文章が修正により削除された文章であることを意味します。 一般的には打ち消し線が付きます。修正前の文章を残しておくことで、閲覧者に与える混乱を軽減できるはずです。
<BLOCKQUOTE>その文章が引用された文章であることを意味します。 改行と上下左の空白が伴います。決して著作物利用の免罪符ではありません。引用と盗用の線引きは難しいので気をつけましょう。
<ADDRESS>その文章が連絡先であることを意味します。改行が伴います。直訳は"住所"ですが、メールアドレスなどで十分でしょう。
タグの意味に応じて見た目も変化しますが、見た目の変化を目的に指定することは間違いです。 (例えば、文章全体をADDRESS要素に指定してしまうと、どこに連絡すればいいのかが分かりません。)  見た目ではなく意味を考えて指定しましょう。

上付き文字や下付き文字に下線をつけると下線まで移動してしまいますが、あまり気にしないようにしましょう。

・HTMLの記述例

上付きor下付き文字は<STRONG>2<SUP>8</SUP> = 256</STRONG>のように、数学や化学の話では便利ではないでしょうか。<br>
<INS>
若者が手紙などで以下のような表現をすることもあるそうです。
<BLOCKQUOTE>
ホームページが面白いって言われるとメチャ<SUP>2</SUP>嬉しい〜^^
</BLOCKQUOTE>
<DEL>・・・普通は前者だけで十分だと思います。</DEL>
</INS>

・実際の表示

上付きor下付き文字は28 = 256のように、数学や化学の話では便利ではないでしょうか。
若者が手紙などで以下のような表現をすることもあるそうです。
ホームページが面白いって言われるとメチャ2嬉しい〜^^
・・・普通は前者だけで十分だと思います。
↑ページトップへ

箇条書きをする

箇条書きはリストとも呼ばれます。語句を列挙したい時に使うと見やすくなります。
<UL>指定した範囲で記号付きリスト(=順不同リスト)を使えるようにします。
<OL>指定した範囲で番号付きリストを使えるようにします。
<LI>UL要素(またはOL要素)の中で使い、リストの項目を表します。最初に記号(または番号)がつきます。
これらは全て改行を伴います。 UL要素内にさらにUL要素を含めると記号が変わります。 また、OL要素の中にさらにOL要素を含めると、番号は意味通りに変わります。

・HTMLの記述例

<OL>
<LI>基礎知識紹介</LI>
<LI>HTMLの作り方</LI>
<OL>
<LI>箇条書きをする</LI>
<LI>テーブルを作る</LI>
</OL>
<LI>CSSの作り方</LI>
</OL>

・実際の表示

  1. 基礎知識紹介
  2. HTMLの作り方
    1. 箇条書きをする
    2. テーブルを作る
  3. CSSの作り方
↑ページトップへ

テーブルを作る

テーブルとは要素を縦横にキッチリ並べる表のことで、TABLE要素によって作成します。 ただし、TABLE要素だけでは何も表示されません。TR要素とTD要素が含まれている必要があります。 実際の中身はTD要素(またはTH要素)に書きます。

テーブルは中身が全て読み込まれるまで表示されません。 あくまで表のための要素であり、これをレイアウトに利用するのはご法度です。レイアウト調節にはCSSを使いましょう。
<TABLE>指定した範囲に含まれるタグでテーブルを構成します。 改行を伴います。
<CAPTION>TABLE要素内で使い、表のタイトルを指定します。 表の枠外上に表示されます。使う必要性は特にありません。
<TR>TABLE要素内で使い、表の行(横)を表します。個数は自由です。
<TD>TR要素内で使い、表の列(縦)を表します。 全ての行に同じ数の列が必要です。表示する本文はこの要素内に書きます。
<TH>TD要素の代わりに使い、行や列の見出しを指定します。一般的には太字になります。
TABLE要素の中にTR要素を入れ、TR要素の中にTD要素を入れ、そこに文を書くということです。 TABLE要素の中の文字も、TD要素の中に入っていないとテーブルの外に出てしまいます。 百聞は一見に如かず、まずは下の例を見てみましょう。

・HTMLの記述例

<TABLE>
<CAPTION>過去三ヶ月の推移</CAPTION>
<TR><TH>実施月</TH><TH>受験者数</TH><TH>合格者数</TH></TR>
<TR><TD>April</TD><TD>45人</TD><TD>25人</TD></TR>
<TR><TD>May</TD><TD>64人</TD><TD>26人</TD></TR>
<TR><TD>June</TD><TD>55人</TD><TD>28人</TD></TR>
</TABLE>

・実際の表示

過去三ヶ月の推移
実施月受験者数合格者数
April45人25人
May64人26人
June55人28人

上の例では4行3列の表が出来ているのが分かります。さらに属性を指定することで、より複雑な表を作ることもできます。
<TABLE border=x>「x」に枠線の太さを指定します。初期値は0です。
<TD colspan=x>「x」に指定した数字の分だけ行を結合します。初期値は1だと考えてください。
<TD rowspan=y>「y」に指定した数字の分だけ列を結合します。この2つはTH要素にも指定できます。
行や列の結合は多少厄介です。結合される側のTD要素を省かなければならないのです。 方向は右と下のみで、個数が合わない場合はおかしな表示になります。

・HTMLの記述例

<TABLE border=1>
<TR><TH>都道府県</TH><TH>大学名</TH><TH colspan=2>受験者数(一次/二次)</TH></TR>
<TR><TD>東京都</TD><TD>東京大学</TD><TD>14人</TD><TD>10人</TD></TR>
<TR><TD>大阪府</TD><TD>大阪大学</TD><TD colspan=2>8人</TD></TR>
<TR><TD rowspan=2>福岡県</TD><TD>九州大学</TD><TD colspan=2>5人</TD></TR>
<TR> <TD>福岡大学</TD><TD>3人</TD><TD>1人</TD></TR>
</TABLE>

・実際の表示

・(実際は色は付きません)
都道府県受験大学名受験者数(一次/二次)
東京都東京大学14人10人
大阪府大阪大学8人
福岡県九州大学5人
福岡大学3人1人
↑ページトップへ

フレームを作る

1つのウィンドウに複数のページを表示するのがフレームです。何も設定しなければフレームは1つなのです。 2つに分けて片方に目次、片方にコンテンツを表示するというやり方が一般的です。 見やすい上に作成後のページ更新の手間も少なくなるのでとても便利です。 ただし、ノートパソコンのような小さい画面では見づらくなる可能性もあります。 フレームを全くサポートしていないブラウザも存在します。(マイナーかもしれませんが)
<FRAMESET>フレームを分割する用意をします。BODY要素の中には入れません。
<FRAME>FRAMESET要素内で使い、実際にフレームを作成します。 表示するページアドレスをsrc属性に記述します。また、name属性を設定することで、 A要素のtarget属性の目的地としての名前を作れます。終了タグはありません。
<NOFRAMES>FRAMESET要素内で使い、フレームが表示できないブラウザで開いた場合に表示する内容を示します。念には念を入れましょう。
<IFRAME>インラインフレームを作ります。 フレームの中に小さなフレームを作るブロックレベル要素で、上3つの要素とは直接には関係ありません。 src属性にアドレスで表示するページを、marginheight属性に1以上の整数で枠線と内容の間隔を、 frameborder属性に1か0で枠線の有無を設定できます。
注意すべきは「<!DOCTYPE ....>」の部分です。 今までの記述ではフレームに関する情報が引き出せないのです。下の記述例のように書き換えましょう。

また、フレームを2つ以上作る場合はFRAMESET要素に「rows」か「cols」の属性が必要です。 それぞれ上下、左右にフレームが分割されます。 また、下の記述例のようにフレームの大きさをフレームの数だけ指定する必要があります。 数字で指定する方法と割合(%)で指定する方法があります。 最後の1つだけは「*」にして自動計算させるのがオススメです。

・HTMLの記述例

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<HTML lang="ja">
<HEAD>
<META http-equiv="Content-Type" content="text/html"; charset="Shift_JIS">
<TITLE>私のホームページ</TITLE>
</HEAD>
<FRAMESET rows="200,*">
	<FRAME src="contents1.html" name="up">
	<FRAME src="contents2.html" name="down">
	<NOFRAMES>フレーム未対応ブラウザでは見ることができません</NOFRAMES>
</FRAMESET>
</HTML>

FRAMESET要素の中にFRAMESET要素を含ませることで、複雑なフレーム割りも実現できます。 (FRAME要素をFRAMESET要素に置き換えてみると分かりやすいと思います。)  TABLE要素と違って、行ごとの列の数を合わせる…なんて事は考えずに済みます。

また、以下のような属性値も指定できます。
<FRAME noresize>フレームの大きさを閲覧者が自由に変える事を禁止します。値は書きません。
<FRAME frameborder="1"or"0">フレームの枠線の有無を指定します。 "1"なら表示、"0"なら非表示になります。
<FRAME scrolling="yes"or"no">フレームの内容のスクロールをするかしないかを指定します。 「yes」か「no」を書きます。

↑ページトップへ