HTML(5) スタイルガイドとコーディング規約

❮ 前章へ 次章へ ❯

HTML コーディング規約

Web 開発者が、HTML で使用するコーディングスタイルや構文についてよく分ってない場合があります。

2000~2010年に、多くの web 開発者は HTML から XHTML に切り換えました。

XHTML を使用することで、開発者は妥当性があり、且つ「整形式」のコードを書くことを余儀なくされました。

HTML5 は、コードの妥当性に関してはもう少しいいかげんです。


Be Smart and Future Proof

スタイルを使用すれば必然的に、他の人が HTML を簡単に理解し、使用できるようになります。

将来、XML リーダのようなプログラムが、あなたの HTML を読もうとするかもしれません。

整形式の「XHTML に閉じた」構文を使用することで、スマートにすることができます。

常に、スタイルをスマートで、整然として、クリーンで、整形式にしておいてください。


正しい文書タイプを使用する

常に、文書の先頭行で文書タイプを宣言してください:

<!DOCTYPE html>

一貫して小文字タグにしたい場合は、次を使用することができます:

<!doctype html>

小文字の要素名を使用する

HTML5 では、要​​素名に大文字と小文字を混合することができます。

次の理由で、要素名には小文字を使用することをお勧めします:

悪い:

<SECTION>
  <p>This is a paragraph.</p>
</SECTION>

非常に悪い:

<Section>
  <p>This is a paragraph.</p>
</SECTION>

良い:

<section>
  <p>This is a paragraph.</p>
</section>

すべての HTML 要素を閉じる

HTML5 では、すべての要素を(例えば、<p> 要素)を閉じる必要はありません。

すべての HTML 要素を閉じることを推奨します:

悪い:

<section>
  <p>This is a paragraph.
  <p>This is a paragraph.
</section>

良い:

<section>
  <p>This is a paragraph.</p>
  <p>This is a paragraph.</p>
</section>

空のHTML要素を閉じる

HTML5 では、空の要素を閉じるのはオプションです。

これは許されます:

<meta charset="utf-8">

これも許されます:

<meta charset="utf-8" />

XHTML と XML において、閉じスラッシュ(/)は必須です。

XML ソフトウェアがページにアクセスするのが予想されれば、閉じスラッシュをそのまま残しておくのは良い考えかもしれません。


小文字の属性名を使用する

HTML5 では、属性名に大文字と小文字を混ぜることができます。

私達は、属性名に小文字を使用することをお勧めします:

悪い:

<div CLASS="menu">

良い:

<div class="menu">

属性値を引用符で囲む

HTML5 は、引用符なしの属性値を許容ます。

私達は、属性値を引用符で囲むことをお勧めます:

非常に悪い:

This will not work, because the value contains spaces:

<table class=table striped>

悪い:

<table class=striped>

良い:

<table class="striped">

画像の属性

画像には、常に "alt" 属性を追加します。この属性は、何らかの理由で画像を表示できない場合に重要です。 また、画像の幅と高さも常に定義します。ブラウザが、読み込む前に画像のスペースを予約できるので、ちらつきが軽減されます。

悪い:

<img src="html5.gif">

良い:

<img src="html5.gif" alt="HTML5" style="width:128px;height:128px">

スペースと等号

悪い:

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

良い:

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

長いコード行を回避する

HTML エディタを使用するときに、HTML コードを読むため左右にスクロールするのは不便です。

80文字以上のコード行を避けるようにしてください。


空白行とインデント

理由もなく空白行を追加しないでください。

読みやすくするために、大きなコードブロックや論理的なコードブロックに分離するために空白行を追加します。

読みやすくするために、インデントとして2つのスペースを追加します。TAB は使用しないでください。

不要な空白行とインデントを使用しないでください。 すべての要素をインデントする必要はありません:

不要:

<body>

  <h1>Famous Cities</h1>

  <h2>Tokyo</h2>

  <p>
    Tokyo is the capital of Japan, the center of the Greater Tokyo Area,
    and the most populous metropolitan area in the world.
    It is the seat of the Japanese government and the Imperial Palace,
    and the home of the Japanese Imperial Family.
  </p>

</body>

良い:

<body>

<h1>Famous Cities</h1>
<h2>Tokyo</h2>

<p>
Tokyo is the capital of Japan, the center of the Greater Tokyo Area,
and the most populous metropolitan area in the world.
It is the seat of the Japanese government and the Imperial Palace,
and the home of the Japanese Imperial Family.
</p>

</body>

テーブルの例:

<table>
  <tr>
    <th>Name</th>
    <th>Description</th>
  </tr>
  <tr>
    <td>A</td>
    <td>Description of A</td>
  </tr>
  <tr>
    <td>B</td>
    <td>Description of B</td>
  </tr>
</table>

リストの例:

<ol>
  <li>London</li>
  <li>Paris</li>
  <li>Tokyo</li>
</ol>

<html> と <body> を省略?

HTML5 の標準では、<html> タグと <body> タグは省略できます。

以下のコードは、HTML5 として妥当です:

<!DOCTYPE html>
<head>
  <title>Page Title</title>
</head>

<h1>This is a heading</h1>
<p>This is a paragraph.</p>

Try it Yourself ❯

私たちは、<html> と <body> タグの省略をお勧めしません。

<html> 要素は、ドキュメントのルートで、ページの言語を指定するための推奨される場所です:

<!DOCTYPE html>
<html lang="ja">

言語を宣言することは、アクセシビリティ・アプリケーション(スクリーンリーダ)や検索エンジンには重要です。

<html> または <body> を省略すると、DOM や XML ソフトウェアはクラッシュします。

<body> を省略すると、古いブラウザ (IE9) ではエラーが発生します。


<head> を省略?

HTML5 の標準では、<head> タグも省略できます。

デフォルトで、ブラウザは <body> の前の全要素を、デフォルトの <head> 要素に追加します。

<head> タグを省略することで、HTML の複雑さを減らすことができます:

<!DOCTYPE html>
<html>
<title>Page Title</title>

<body>
  <h1>This is a heading</h1>
  <p>This is a paragraph.</p>
</body>

</html>
Try it Yourself ❯

タグの省略は、web 開発者には馴染みがありません。ガイドラインとして確立するには時間が必要です 。


メタデータ

<title> 要素は、HTML5 では必須です。できるだけ意味のあるタイトルを付けてください:

<title>HTML5 Syntax and Coding Style</title>

適切な解釈と正しい検索エンジンのインデキシングを確保するためには、言語と文字エンコーディングを文書でのできるだけ 前の方で定義するべきです:

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>HTML5 Syntax and Coding Style</title>
</head>

Viewport の設定

HTML5 には、Web デザイナが <meta> タグを通してビューポートを制御できるようにするためのメソッドが導入されました。

ビューポートは、ユーザが見ることのできる Web ページの領域です。それはデバイスによって異なり、携帯電話はコンピュータ画面より小さくなります。

すべての Web ページに次の <meta> viewport 要素を含める必要があります:

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

<meta> 要素は、ページの寸法とスケーリングを制御する方法についてブラウザに指示します。

width=device-width 部分は、ページの幅をデバイスの画面幅に合わせるように設定します(デバイスによって異なります)。

initial-scale=1.0 の部分は、ブラウザがページを最初に読み込んだときの初期ズームレベルを設定します。

viewport メタタグのないウェブページの例と、ビューポートメタタグのある web ページの例を次に示します:

チップ: 携帯電話やタブレットでこのページを閲覧している場合は、下の2つのリンクをクリックしてその違いを確認できます。




viewport メタタグなし




viewport メタタグあり



HTML コメント

短いコメントは、次のように1行に記述します:

<!-- This is a comment -->

複数の行にまたがるコメントは、次のように記述する必要があります:

<!--
  This is a long comment example. This is a long comment example. This is a long comment example.
  This is a long comment example. This is a long comment example. This is a long comment example.
-->

2つのスペースでインデントすると、長いコメントは見易くなります。


スタイルシート

スタイルシートをリンクするための簡単​​な構文を使用します(type 属性は不要):

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

短文規則(Short rules)は、次のように1行に圧縮して記述されます:

p.intro {font-family: Verdana; font-size: 16em;}

長文規則(Long rules)は、複数行にわたって記述する必要があります:

body {
  background-color: lightgrey;
  font-family: "Arial Black", Helvetica, sans-serif;
  font-size: 16em;
  color: black;
}

HTML に JavaScript をロードする

外部スクリプトをロードするための簡単​​な構文を使用します(type 属性は不要):

<script src="myscript.js">

JavaScript による HTML 要素へのアクセス

「汚い」(untidy)HTML スタイルを使用した結果、JavaScript のエラーが発生する可能性があります。

次の2つの JavaScript 文は、異った結果を産み出します:

var obj = getElementById("Demo")

var obj = getElementById("demo")

Try it Yourself ❯

JavaScript スタイルガイドを参照します.


小文字のファイル名を使用する

一部の Web サーバ(Apache、Unix)では、ファイル名の大文字と小文字を区別します:"london.jpg" には、"London.jpg" ではアクセスできません。

他の Web サーバ(Microsoft、IIS)では、大文字と小文字を区別しません:"london.jpg" には、"London.jpg" や "london.jpg" という名前でアクセスできます。

大文字と小文字を混在して使用する場合は、極めて首尾一貫していなければなりません。

大文字と小文字を区別しないサーバから、区別するサーバに移行した場合、どんな小さなエラーでも Web を破壊してしまいます!

これらの問題を回避するには、常に小文字のファイル名を使用することです。


.htm と .html との違い

.htm 拡張子と .html 拡張子には違いはありません。どちらも、Web ブラウザや Web サーバによって HTML として扱われます。

違うのは文化です:

.htm は、システムが拡張子を 3 文字に制限していた初期の DOS システムの「匂い」がします。

.html は、この制限がない Unix オペレーティングシステムの 「匂い」がします。

技術的な違い

URL がファイル名(例:http://www.w3schools.com/css/)を指定しない場合、サーバはデフォルトのファイル名を返します。 一般的なデフォルトのファイル名は、index.html、index.htm、default.html、default.htm です。

サーバがデフォルトのファイル名として "index.html" のみを使用するように設定されている場合、 ファイル名は "index.htm" ではなく "index.html" でなければなりません。

しかし、サーバは複数のデフォルトファイル名を持つ構成にすることもできます。通常は、必要に応じて多くの既定のファイル名を設定します。

とにかく、HTML ファイルの完全な拡張子は .html なので、使用しない理由はありません。


❮ 前章へ 次章へ ❯