#02、HTMLの基本構造

プログラミングイメージ プログラミング

 

HTMLには様々なパターンがあり、それが増えれば増えるほどできることが増えていきます。

例えば英語を勉強するとき、はじめは単語で片言しかしゃべれないけど、いろいろなことを覚えていけばすらすらスマートに会話することができるようになります。

  

同じ様にいろんなパターンを覚えていけばできることが増え、スマートに、より簡単にHTMLを仕上げていくことができます。

 

とりあえず現段階では、HTMLの中はHEADとBODYに分かれていて、それぞれにタグで役割を付けた文章を書きこんでいくというところまで覚えたので、次に進みたいと思います。

 

 

 

スポンサーリンク

HTMLを書きはじめにすること

HTMLのバージョンを宣言する

HTMLにもバージョンがあるんですねw

そのバージョンによって使えるタグが違うらしいのですが、現在は特に違いはないそうです。これが必要になる場面はブラウザの種類によるみたいですね。

 

実際違ったとしても互換モードというもので補完するみたいなんですが、これだと設計したホームページのレイアウトが崩れることがあるみたいなので、きちんと宣言した方が良さそうです。

このように「!DOCTYPE html」と一番上に書くだけです。大文字小文字のどちらでもいいようですが慣例としてDOCTYPEは大文字で書くそうです。

これをDOCTYPEドックタイプ宣言と言います。

これが何かわからなくてもとりあえず書いとけばいい感じに思ってますww

 

 

属性とは

属性とは、ゲームではよく聞くあれですねw

あるものの性質のことです。もともと備わっているものや、あとから付与したりしますね。

 

ここにおいてもおおよそそんな感じです。

HTMLの開始タグを例に、ここではこれから書くHTMLは日本語であるということを示します。

HTML要素の中に、言語(languageランゲージ)を表すlang、日本語(japaneseジャパニーズ)を表すjpを書き込みます。

文章を日本語で書けばわざわざ日本語と示す必要はなさそうですが、これをやっておけばパソコンが認識しやすいらしいので書いておきます。

 

画像のようにhtmlから半角スペースを空け「=」と「””」を忘れないように書いてください。

 

 

文字化け対策

文字化けの原因は、テキストエディタとブラウザの文字コードの違いによるものだそうです。

プログラムを書くにはテキストエディタを使い、出来上がりを見るにはブラウザで表示します。文字化けはこの間で起こります。

コンピューターは、文字を数字で認識します。

適当に、例1「あ⇒1」「い⇒2」・・・「Aは11」「B⇒12」・・・とか、例2「あ⇒3」「い⇒4」・・・「Aは15」「B⇒16」・・・というイメージです。

では、例1の文字コードを採用しているテキストエディタで書き上げたものを、例2の文字コードを採用しているブラウザで表示させるとどうなるでしょうか?文章がめちゃくちゃになるのはわかりますね。これを防ぐためにHTMLを書くときに、このテキストエディタは何の文字コードを使っているのかということを示しておかなければなりません。

ここでmeta要素というものを使って文字コードを示します。

charsetとはキャラクターセットのことで、ざっくり文字群ということでしょうか。これが属性名で、あとに続く属性値が文字コードです。ここで書かなければならない文字コードは、これを書いているテキストエディタの文字コードです。

 

現在はこのコードがよく使われているそうです。

 

書き方は<html>の中に属性を書いたのと同じように書きます。

こうしてみると、赤は要素名、オレンジは属性名、緑は属性値だということがわかります。

 

これで、事前準備ができました。

 

 

まとめ

!DOCTYPEでHTMLのバージョンを宣言する

langでHTMLをどの言語で書くかを示す

charsetで文字コードを示す

 

 

 

スポンサーリンク

要素とコンテンツ(カテゴリー、モデル)

<html>や<head>、<body>、見出しを表す<h(1~6)>、段落を表す<p>などの各要素は、その組み合わせによって文章を整理してまとまりをつけたりさまざまな効果を生みます。

その要素同士の組み合わせにはルールが存在していて、間違った組み合わせでは効果を発揮することはありません。

 

ある要素内にマークアップできる要素のことをコンテンツモデルといい、そのコンテンツモデルはコンテンツカテゴリーに分類することができます。

 

カテゴリーには下記のようなものがあります。

  • メタデータ・コンテンツ  メタデータやCSS、JavaScript(サイトに動きを付けるプログラム言語)を指定する要素
  • フロー・コンテンツ  body要素の中なら基本的にどこにでも配置できる要素
  • セクショニング・コンテンツ  章・節・項など階層構造を形成する要素
  • ヘディング・コンテンツ  見出しを示す要素
  • フレージング・コンテンツ  ドキュメントのテキスト範囲を示す要素
  • エンベッディッド・コンテンツ  外部のリソースやHTML以外の言語で作られたコンテンツを埋め込む要素
  • インタラクティブ・コンテンツ  ユーザーが何かしらの操作をすることができる要素
  • パルパブル・コンテンツ  コンテンツモデルがフロー、フレージングの要素で、かつ、要素内にhidden属性が指定されていない要素が1つ以上ある要素
  • その他

正直まだよくわからないものも多いですが、とりあえずこれくらいはあるということでww

 

 例

<head>の中に<meta>と<title>が入っています。

これは<meta>と<title><head>のコンテンツモデルなので効果を発揮します。そして、<meta>と<title>はメタデータコンテンツというコンテンツカテゴリーに分類されます。

 

このあたりは覚えることが唯一の勉強法なのでやりながら覚えていくしかないですね。

 

 

 

スポンサーリンク

実際に書いてみる

テスト勉強ではないので初めからカテゴリーやモデルを覚えようとはせずに実際にHTMLを書きながら覚えようと思います。

ホームページのテーマは「キャンプ道具で必要なもの」で作ろうと思います。

 

 

タイトルを決め見出しを付ける

まずは、<head>内で<title>を書きます。

本文を書く<body>で見出しを付けます。<h1>が大枠の「大見出し」になり、h2、h3と数字が大きくなるごとに中見出し、小見出しと内容を深堀していくようにまとめられていきます。

<h>は<headerヘッダー>の略になり、ヘディングコンテンツ、フローコンテンツというカテゴリーに分類されコンテンツモデルはフレージングコンテンツです。

 

 

文章を書いていく

段落

各見出しの下に文章を書いていきます。

<p>は<paragraphパラグラフ>の略で段落を表し、文章はこの要素を使って書きます。

フローコンテンツというカテゴリーに分類され、コンテンツモデルはフレージングコンテンツです。

ブラウザを使って確認するとこのようになりました。

 

見出しは、数字が大きいほど文字が小さくなっているのがわかります。

ここで気が付くのは、テキストエディタで改行しているのに、ブラウザに反映していないことですね。

改行するためには対応する要素を使う必要があります。

 

 

改行

改行には<br>という要素を使います。

<br>はline breakライン ブレークの略です。この要素は改行するポイントを指定するだけなので、開始、終了タグによって文章を挟む必要はありません。

フロー、フレージングカテゴリーに分類され、コンテンツモデルは無しとなります。

他にも定義があるみたいですが、このように終了タグを必要としない要素のことを、空要素と言います。

 

 

このように改行が反映されていますね。

 

 

特定の場所をピックアップ

文章中の特に重要な部分を示すためには<strongストロング>を使います。

このように重要な部分を太字で表すことができます。

 

重要さを表す<strong>と似た要素に<em>emphasisエンファサイズという強調を表す要素もあります。

赤線が強調したい部分ですが、ホームページ上では特に変化はありません。ブラウザによるとかがあるそうですが、黄線のように日本語表記では変化はありませんが、アルファベットなら斜字になっています。

 

変化は無くてもコンピューターに強調したい部分だと認識させることが目的でしょうか。

 

<strong><em>ともに、コンテンツカテゴリーはフロー、フレージングコンテンツ、コンテンツモデルはフレージングコンテンツです。

 

注意 <strong>や<em>は太字や斜字で表すことが本来の目的ではなく、その一文が重要であること、強調したい、などを示すものなので、見た目を変化させたいという理由で使用するのは望ましくないそうです。その場合は、CSSを使って装飾します。

 

 

リスト項目

必要なものなど箇条書きするときに使える機能です。今回の必要なキャンプ道具を一覧で確認するときなど便利に使えます。

このように項目ごとにlist itemリスト アイテムを表す<li>を付け、それをunordered listアンオーダード リストの<ul>で閉じます。これを順不同リストと言います。

 

<li>の中にさらに<ul>を入れて<li>を入れることを入れ子と言います。これをすることで細かいリストを作ることができます。

 

 

順不同リストは<ul>ですが、odered listオーダード リストを表す<ol>で番号順に表示するリストもあります。

 

<li>はコンテンツカテゴリーは無し、コンテンツモデルはフローコンテンツです。

<ul>と<ol>はコンテンツカテゴリーはフローコンテンツ、コンテンツモデルは0個以上の<li>要素です。

<li>のコンテンツカテゴリーが無しなのは、配置できる要素が<ul><ol>しかなく配置できるところが明確であるため無しになります。

同じ様に、<ul><ol>のコンテンツモデルは<li>しかないことからこのようになっています。

 

 

用語、定義リストを作る

ここでは箇条書きリストではなく、言葉とその意味を表すリストを作ります。

要素は、<dl><dt><dd>の3つを使います。

 

今回学んだことを途中までリストアップしました。このように<dd>の部分は自動的にインデント(スペース)が付きます。

 

<dd>の中にはリストを作る<ul><ol>要素を入れることができます。

 

<dl>はdescliptionディスクリプションの略で、説明リストの意味。コンテンツカテゴリーはフローコンテンツ、コンテンツモデルは、1つ以上の<dt>要素とそれに続く1つ以上の<dd>要素のグループが0個以上となっています。つまり、<dl>直後には<dt>と<dd>しか入れることはできないということです。

<dt>descliption termディスクリプション タームの略で、説明リストの用語の意味。コンテンツカテゴリーは無し。コンテンツモデルはフローコンテンツ(一部例外あり)となっています。

<dd>descliption definitionディスクリプション ディフィニションの略で、説明リストの説明や定義の意味。コンテンツカテゴリーは無し。コンテンツモデルはフローコンテンツとなっています。

 

<dl>直後には<dt><dd>しか入れることはできませんが、<dt><dd>のコンテンツモデルはフローコンテンツなので、この要素の中にはフローコンテンツのカテゴリーに分類される要素を挟むことができます。<dl>要素内に<ul><ol>要素を入れることができるのはそのためです。そして<ul><ol>を挟むことができるということは、必然的に<li>も挟めるようになります。

   

 

 

スポンサーリンク

使用した要素のまとめとおさらい

 

HTMLの各要素は、自分の中に配置できる要素が決まっています。その要素のことをコンテンツモデルと言います。そして、その各要素はコンテンツカテゴリーとして分類されています。

 

<h>のコンテンツモデルはフレージングコンテンツなので、下記表の中から選ぶとしたら、コンテンツカテゴリーがフレージングコンテンツの<br><strong><em>が対象になります。

つまり、<h>、、、<br></h>、<h><strong>、、、</strong></h>、<h><em>、、、</em></h>とすることができます。

要素正式名意味コンテンツカテゴリーコンテンツモデル
<h>header6種類の見出しを付けるヘディング、フローフレージング
<p>paragraph段落を付けるフローフレージング
<br>line break改行を付けるフロー、フレージングなし
<strong>strong重要を表すフロー、フレージングフレージング
<em>emphasis強調させるフロー、フレージングフレージング
<li>list itemリストの項目なしフロー
<ul>unordered list順不同リストフローコンテンツ0個以上の<li>要素
<ol>ordered list番号順リストフローコンテンツ1個以上の<li>要素
<dl>descliption説明リストフローコンテンツ1つ以上の<dt>要素とそれに続く1つ以上の<dd>要素のグループが0個以上
<dt>descliption term説明リストの用語なしフロー(子孫に、ヘディングコンテンツ、セクショニングコンテンツ、header、footer要素がないことが条件)
<dd>descliption definition説明リストの用語や定義なしフロー

 

覚えることは多いですが、まだもうちょっと続けられそうですww

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