JavaScript | HTML / CSS 連携:HTML基礎 - head要素

JavaScript JavaScript
スポンサーリンク

head 要素は「ページの設定・プロフィールを書く場所」

まずイメージからいきます。

<head> は、
「画面に直接は見えないけれど、ページにとって超重要な情報」
を書く場所です。

タイトル
文字コード
スマホ向けの設定
検索エンジン向けの説明
CSS や JavaScript の読み込み指定

こういった「ページの中身そのものではない情報」を
まとめて入れておく“コントロールルーム”が <head> です。

画面に見える本文は <body>
その前にある「裏方の設定」が <head>
と覚えるとスッと入ります。


head 要素の基本的な位置と形

HTML 全体の中での head の場所

最小構造の中で見ると、こうなります。

<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="UTF-8">
    <title>サンプルページ</title>
  </head>
  <body>
    <h1>こんにちは</h1>
    <p>これはサンプルです。</p>
  </body>
</html>

<head> は必ず <html> の中、
そして <body> よりも前に書きます。

ここに書くのは「設定・メタ情報」であって、
見出しや本文などの「コンテンツ」は入れません。

<h1><p><head> に書くのは NG です。
それらは必ず <body> の中に置きます。


文字コードを決める meta 要素は最優先レベルで重要

<meta charset="UTF-8"> はほぼ必須の一行

<head> の中で、
まず真っ先に書くべきなのがこれです。

<meta charset="UTF-8">

これは
「この HTML は UTF-8 という文字コードで書いてあります」
という宣言です。

これがないと、日本語が文字化けしたり、
ブラウザが誤った文字コードで解釈してしまうことがあります。

現代の Web では、
文字コードはほぼ UTF-8 一択なので、

「HTML を書くときは、<head> の最初に
<meta charset="UTF-8"> を入れる」

と指に覚えさせてしまって大丈夫です。


title 要素は「タブの名前」であり「ページの名前」

画面には出ないけれど、ユーザーが一番よく見る文字

<title> はこう書きます。

<title>はじめての HTML ページ</title>

これは、

ブラウザのタブに表示される文字
ブックマークしたときの名前
検索結果に出るページタイトル

などに使われます。

画面の本文には直接出てきませんが、
ユーザーが「今どのページを見ているか」を判断する
とても重要な情報です。

ここで大事なのは、
ページごとに意味のあるタイトルを付けること です。

悪い例:

<title>無題</title>
<title>ホーム</title>

良い例:

<title>My Cafe - ホーム</title>
<title>My Cafe - メニュー</title>
<title>My Cafe - アクセス</title>

「サイト名+ページの内容」が分かるタイトルにすると、
タブがたくさん開いていても迷いにくくなります。


CSS や JavaScript の読み込み指定も head の大事な仕事

CSS は link 要素で読み込む

外部の CSS ファイルは、
通常 <head> の中で読み込みます。

<head>
  <meta charset="UTF-8">
  <title>スタイル付きページ</title>
  <link rel="stylesheet" href="styles.css">
</head>

<link rel="stylesheet">
「このページは styles.css というスタイルシートを使います」
という宣言です。

これを <head> に書いておくことで、
ブラウザは HTML を描画するときに
CSS の情報も一緒に考慮してくれます。

JavaScript は昔は head に、今は body 終了前に置くことが多い

JavaScript も <head> で読み込めます。

<head>
  <meta charset="UTF-8">
  <title>スクリプト付きページ</title>
  <script src="app.js"></script>
</head>

ただし、この形だと
HTML を読み込む前に JavaScript が実行されるため、
DOM 操作のタイミングに注意が必要です。

最近は、

<body> の一番最後で読み込む
または <script defer> を使う

といった書き方が主流です。

例(defer を使う):

<head>
  <meta charset="UTF-8">
  <title>スクリプト付きページ</title>
  <script src="app.js" defer></script>
</head>

defer を付けると、
「HTML の解析が終わってからスクリプトを実行する」
という動きになるので、
DOM 操作がしやすくなります。


スマホ向け表示を整える meta viewport

スマホで“ちゃんと”見せるための一行

スマホ対応のページでは、
ほぼ必須の一行がこれです。

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

これは、

画面の幅をデバイスの幅に合わせる
初期の拡大率を 1 にする

という設定です。

これがないと、
スマホで開いたときに

全体が縮小されて小さく表示される
文字が読みにくい
意図しないズーム状態になる

といったことが起きます。

<head> にこの一行を入れておくことで、
「スマホで見たときの基本的な見え方」 が整います。


検索エンジンや SNS 向けの meta 情報も head に書く

description でページの説明を書く

検索結果に出る「説明文」の候補になるのが
<meta name="description"> です。

<meta name="description" content="My Cafe は東京にある小さなカフェです。自家焙煎コーヒーと手作りスイーツが人気です。">

これは画面には表示されませんが、
検索エンジンがページの内容を理解する助けになります。

「このページは何についてのページか」を
一文で説明するつもりで書くと良いです。

SNS 用の情報(OGP など)もここに置く

Twitter や LINE で URL を貼ったときに出る
タイトル・説明・サムネイル画像なども、
多くは <head> の中の <meta> で指定します。

例(ざっくりイメージ):

<meta property="og:title" content="My Cafe - ホーム">
<meta property="og:description" content="自家焙煎コーヒーが楽しめるカフェです。">
<meta property="og:image" content="https://example.com/og-image.jpg">

これも「ページの中身」ではなく
「ページについての情報」 なので、
<head> に書くのが正しい場所です。


head に“入れてはいけないもの”も理解しておく

コンテンツ(見出し・本文)は絶対に入れない

<head> は設定・メタ情報の場所なので、
次のようなものは入れてはいけません。

<h1><h2> などの見出し
<p> などの本文
<img> などのコンテンツ画像

これらはすべて <body> の中に置きます。

悪い例:

<head>
  <meta charset="UTF-8">
  <title>テスト</title>
  <h1>こんにちは</h1> <!-- NG -->
</head>

正しい形:

<head>
  <meta charset="UTF-8">
  <title>テスト</title>
</head>
<body>
  <h1>こんにちは</h1>
</body>

「ユーザーが画面で見るべきものか?」
と自分に問いかけて、
そうなら <body> に、
そうでないなら <head> に、
と分ける感覚を持てると一気に整理されます。


初心者として「head 要素」で掴んでほしいこと

<head> は、
「ページの中身」ではなく「ページの設定・プロフィール」
を書く場所です。

文字コード(<meta charset="UTF-8">)で文字化けを防ぐ
タイトル(<title>)でタブ名・ページ名を決める
CSS(<link rel="stylesheet">)や JS(<script>)の読み込みを宣言する
スマホ向けの表示(<meta name="viewport">)を整える
検索エンジンや SNS 向けの説明(<meta name="description"> など)を書く
見出しや本文などのコンテンツは絶対に入れず、必ず <body> に置く

あなたが HTML を書くときに、
「これはユーザーが見る中身? それともページの設定?」
と一度立ち止まって、
設定なら <head>、中身なら <body> に分けられるようになったら、
もう HTML の“設計者”としての感覚が育ち始めています。

タイトルとURLをコピーしました