HTML 言語の紹介

概要

HTML はウェブページで使用される言語で、ウェブページの構造と内容を定義します。ブラウザがウェブサイトにアクセスする際、実際にはサーバーから HTML コードをダウンロードし、その後ウェブページをレンダリングします。

HTML の正式名称は「ハイパーテキストマークアップ言語」(HyperText Markup Language)で、1990 年代に欧州原子核研究機構の物理学者ティム・バーナーズ=リー(Tim Berners-Lee)によって発明されました。最大の特徴はハイパーリンクをサポートしていることで、リンクをクリックすることで他のウェブページに移動でき、これによってインターネット全体が構成されています。

1999 年に HTML 4.01 が発表され、広く受け入れられる HTML 標準となりました。2014 年には HTML 5 が発表され、現在使用されているバージョンです。

ブラウザでのウェブ開発には、HTML、CSS、JavaScript の三つの技術が関わります。HTML 言語はウェブページの構造と内容を定義し、CSS スタイルシートはウェブページのスタイルを定義し、JavaScript 言語はウェブページとユーザーとの相互作用を定義します。HTML 言語はウェブ開発の基礎であり、CSS と JavaScript は HTML に基づいて機能します。これら二つがなくても、HTML 自体は使用でき、基本的な内容表示を完了することができます。本チュートリアルでは HTML 言語のみを紹介します。

以下は、シンプルなウェブページの HTML ソースコードです。

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="utf-8">
  <title>ウェブページのタイトル</title>
</head>
<body>
  <p>こんにちは、世界</p>
</body>
</html>

このコードは、hello.html というファイル名で保存できます。ブラウザでこのローカルファイルを開くと、「こんにちは、世界」という文字が表示されます。

ブラウザの右クリックメニューの「ソースを表示」(View page source)を使うことで、現在のウェブページの HTML ソースコードを表示できます。

ウェブページの基本概念

タグ

ウェブページの HTML コードは、多くの異なるタグ(tag)で構成されています。HTML 言語を学ぶことは、さまざまなタグの使い方を学ぶことです。

以下はタグの一例です。

<title>ウェブページのタイトル</title>

上記のコードでは、<title></title> は一対のタグです。

タグはブラウザに対して、このコードの処理方法を指示します。タグの内容は、ブラウザがレンダリングし、ウェブページに表示する内容です。

タグは一対の山括弧内に置かれます(例:<title>)。ほとんどのタグはペアで出現し、開始タグと終了タグに分かれ、終了タグではタグ名の前にスラッシュが追加されます(例:</title>)。ただし、一部のタグはペアで使用されず、開始タグのみで終了タグがない場合があります。例えば、前の例の <meta> タグです。

<meta charset="utf-8">

上記のコードでは、<meta> タグには終了タグ </meta> はありません。

このように単独で使用されるタグは、通常、タグ自体が機能を完結するため、タグ間の内容は必要ありません。実際のアプリケーションでは、主にブラウザに特別な処理を促すために使用されます。

タグは入れ子にすることができます。

<div><p>こんにちは、世界</p></div>

上記のコードでは、<div> タグの内部に <p> タグが含まれています。

入れ子にする際は、正しい閉じ順序を保証する必要があり、層を越えた入れ子にすることはできません。そうしないと、予期しないレンダリング結果が生じる可能性があります。

<div><p>こんにちは、世界</div></p>

上記のコードは、誤った入れ子であり、閉じ順序が不正確です。

HTML タグ名は大文字と小文字に敏感ではありません。例えば、<title><TITLE> は同じタグです。ただし、一般的には小文字を使用するのが習慣です。

また、HTML 言語はインデントや改行を無視します。以下のいずれかの書き方のレンダリング結果は同じです。

<title>ウェブページのタイトル</title>

<title>
  ウェブページのタイトル
</title>

<title>ウェブ
ページのタイトル</title>

さらに言えば、ウェブページの HTML コード全体を一行で書くことも可能で、ブラウザは同様に解析し、結果は完全に同じです。したがって、正式にウェブページを公開する前に、開発者は時々ソースコードを一行に圧縮して、転送するバイト数を減らします。

さまざまなウェブページのスタイル効果、例えば内容のインデントや改行は、主に CSS によって実現されます。

要素

ブラウザがウェブページをレンダリングする際、HTML ソースコードを解析してタグツリーを作成します。各タグはツリーのノード(node)であり、このようなノードをウェブ要素(element)と呼びます。したがって、「タグ」と「要素」は基本的に同義語ですが、使用される場面が異なります。タグはソースコードの視点から見たものであり、要素はプログラミングの視点から見たものです。例えば、<p> タグはウェブの p 要素に対応しています。

入れ子のタグはウェブ要素の階層関係を構成します。

<div><p>こんにちは、世界</p></div>

上記のコードでは、div 要素の内部に p 要素があります。上層の要素は「親要素」と呼ばれ、下層の要素は「子要素」と呼ばれます。つまり、divp の親要素であり、pdiv の子要素です。

ブロック要素とインライン要素

すべての要素は大きく二つに分けられます:ブロック要素(block)とインライン要素(inline)。

ブロック要素はデフォルトで独立した領域を占有し、ウェブページ上で自動的に新しい行に移動し、100% の幅を占有します。

<p>こんにちは</p>
<p>世界</p>

上記のコードでは、p 要素はブロック要素であるため、ブラウザは内容を二行に分けて表示します。

インライン要素はデフォルトで他の要素と同じ行にあり、改行を発生させません。例えば、span はインライン要素であり、通常は特定のスタイルを指定するために使用されます。

<span>こんにちは</span>
<span>世界</span>

上記のコードでは、span 要素はインライン要素であるため、ブラウザは二行の内容を一行に表示します。

属性

属性(attribute)はタグの追加情報であり、空白でタグ名や他の属性と区切られます。

<img src="demo.jpg" width="500">

上記のコードでは、<img> タグに二つの属性があります:srcwidth

属性は等号で属性値を指定できます。例えば、上記の demo.jpgsrc の属性値です。属性値は一般的に二重引用符で囲まれますが、必須ではありません。ただし、常に二重引用符を使用することが推奨されます。

属性名は大文字と小文字に敏感ではなく、onclickonClick は同じ属性です。

HTML は多くの属性を提供し、タグの動作をカスタマイズします。詳細な情報については公式ドキュメントを参照してください。

ヘッダー

ウェブページの構造は、<head> タグの内部でメタデータや外部リソースの情報を定義します。

<head>
  <meta charset="utf-8">
  <base href="https://example.com/">
  <link rel="stylesheet" href="style.css">
  <script src="script.js"></script>
  <noscript>JavaScript が無効になっています。</noscript>
</head>

上記のコードで、<head> タグ内のタグの意味は以下の通りです。

  • <meta>:ウェブページのメタデータを定義。
  • <base>:基準 URL を定義。
  • <script>:外部 JavaScript ファイルを接続。
  • <noscript>:JavaScript が無効になっている場合の内容を定義。

<meta>

<meta> タグはウェブページのメタデータを設定するために使用され、ウェブページに関する情報を説明するものです。

メタデータはウェブページに関する記述情報であり、直接ウェブページに表示されることはありませんが、ウェブページのレンダリングや SEO(検索エンジン最適化)に影響を与えます。

<meta charset="utf-8">

上記のコードでは、<meta> タグはウェブページの文字コードを設定し、特に日本語を含むさまざまな文字を表示できるようにします。

<meta name="viewport" content="width=device-width, initial-scale=1.0">

上記のコードでは、<meta> タグはモバイルおよびタブレット上でのウェブページの適応性を設定します。

name 属性はメタデータの名称を指定し、content 属性はメタデータの値を指定します。

<link>

<link> タグは外部リソースを接続するために使用され、主に CSS スタイルシートをインポートするために使用されます。

<link rel="stylesheet" href="style.css">

上記のコードでは、<link> タグが style.css という名前の外部スタイルシートを接続しています。

rel 属性は接続のタイプを示し、通常は stylesheet を使用します。href 属性は接続するファイルのパスを指定します。

<title>

<title> タグはウェブページのタイトルを設定します。その内容はブラウザのタブに表示され、通常は検索エンジン結果ページのリンクテキストになります。

<title>ウェブページのタイトル</title>

上記のコードの内容がウェブページのタイトルです。

<body>

<body> タグはウェブページの主要な内容領域であり、ブラウザは <body> 内のすべての内容をページにレンダリングします。

<body>
  <p>こんにちは、世界</p>
</body>

<body><html> の二つ目の子要素です。

<body> タグ内には、ウェブページの内容を豊かにするためにさまざまなタグを追加できます。

結論

本節では HTML の基本概念、基本構造、一般的なタグについて紹介しました。HTML の基本知識を習得することで、より良いウェブ開発が可能になります。


作者: wangdoc

アドレス: https://wangdoc.com/

ライセンス: クリエイティブ・コモンズ 3.0