■HTML5
◆概要
HTMLは、Hyper Text Markup Language(ハイパーテキスト・マークアップランゲージ)の略で、リンク可能な飾りづけ文書を記述する言語である。
HTML5は、Web技術の標準化団体であるW3Cが策定を進めている次世代のHTML規格で、2012年12月にHTML5仕様策定が完了し、2014年に最終勧告が予定されている。
それでも、W3Cの勧告の有無に関わらず、各ブラウザのHTML5実装は日に日に進んでいるため、W3Cの勧告は現状追認という形態として発表されることが見込まれている。
◆Content-Type
拡張子は、「.html」や「.htm」を用い、Content-Typeは「text/html」を用いる。
◆DOCTYPE
ファイルの先頭にこの宣言を記載する
DOCTYPEは「html」となり、宣言は下記の通りになる。
大文字、小文字は区別されないので、下記の通りでも良い。
ファイルの先頭にこの宣言があるかどうかで、Webブラウザはパーサー(解析)やレンダリング(描画)モードをHTML5に対応したものに切り替えるため、必ず記載する。
◆タグ
"<"と">"で囲まれた要素の種類や構造を表すマーク。
原則として「開始タグ」と「終了タグ」の2つをセットとして扱い、「開始タグ」と「終了タグ」の間に要素のデータを格納する。
大文字、小文字は区別されないので、自由に記載しても良いが、小文字を用いるケースが多い。
半角と全角は完全に別の文字と判断されるし、タグ自体は必ず半角でなければならないので注意する。
例:
で囲んでいたため、HTML全域にdivタグが氾濫し、とても読みにくいものとなっていた。
HTML5では、よく使われる(原則として文章構成要素として必須な)要素を具体的な名称タグでまとめることにより、文書の構成をわかりやすく表現することを目指した。
header:文書のヘッダ情報(タイトル等)が含まれる領域
nav:セクションの一つで、ナビゲーションメニュー(目次領域)が含まれる領域
article:セクションの一つで、文書の主題たる記事が含まれる領域
aside:セクションの一つで、補足情報(関連情報等)を表す領域
section:ひとまとまりの文書を表す領域(タイトルがつけられるような1グループ)で汎用的なセクションとして用いる
footer:文書のフッタ情報(著作権表記等)が含まれる領域
例:
誘導なびは、誘導するユーザが誘導されるユーザをナビゲーションするサービスです!
小関語録
日系ブラジル人の生徒の遅刻がひどく、小関先生は父親に電話をした。
父親は純粋なブラジル人で、どうも日本語がほとんど話せないらしい。
電話口にて「わた〜しぃ〜、にふぉんごぅ、わっかりまふぇ〜ん」という。
仕方なく、遅刻の説明は諦め、本人に電話を変わってもらい、自分で父親に説明するよう指示をした。
しばらくして、懇談のときに、その生徒の父親が来校した。
ところがなんと、驚くべきことに、その父親は普通に日本語を話すではないか!!
小関先生は日系ブラジル人の生徒を職員室に呼び出し、机をバンと叩きながら叫んだ!
「お前は、、、」
「お前は、俺の目を『ふしだら』だと思ってるのか!!」
・・・
またたく間に職員室は爆笑の渦に包まれた。。。
・・・
私は生まれて初めて、自分の「腹筋がちぎれる音」を聞いた。
◆scriptタグ
scriptタグは、下記4通りのいずれかの場所に記載する。(の外でも、の下でも動いたような気がするが)
「headタグ」内(~)
「headタグ」内に「外部ファイル」がJavaScriptと指定()
「bodyタグ」内(~)
「bodyタグ」内の「別途タグ」内(
)
scriptタグの属性は下記の通りとなる。
src:外部スクリプトファイルのURLを指定
async:src属性が指定されている場合、利用可能な時点でスクリプトを実行
defer:src属性が指定されている場合、HTML文書を読み込んだ時点でスクリプトを実行
type:スクリプトのMIMEタイプを指定(初期値は"text/javascript"のため、textでJavaScriptが記載されたScriptなら省略可能)
charset:外部スクリプトファイルの文字エンコーディングを指定
例:
✕悪い例:
bar
問題点:bodyが読み込まれる前段階で「id="foo"」の要素の中身を参照しようとしているが、まだブラウザが知らない値なのでNullとなる。
❍良い例
bar
解決点:body内のp要素「id="foo"」の中身が読み込まれてから参照するため、正常に出力できる
✕悪い例:
ファイル名:foo.js
ファイル内容:alert(document.getElementById("foo").innerHTML);
bar
問題点:bodyが読み込まれる前段階で「id="foo"」の要素の中身を参照しようとしているが、まだブラウザが知らない値なのでNullとなる。
❍良い例
ファイル名:foo.js
ファイル内容:alert(document.getElementById("foo").innerHTML);
bar
解決点:defer要素の指定があるため、body内のp要素「id="foo"」の中身が読み込まれてから参照するため、正常に出力できる