html
HTMLの基点となる要素です。他の全ての要素は、この要素の子孫として配置する必要があります。
head
と1つのbody
のみhead
文書の表示されない情報(メタデータ)を扱う要素を内包する要素です。
html
の子要素としてしか配置できない。文書内で1つしか配置してはいけない。body
文書の表示されるコンテンツを内包する要素です。
html
の子要素としてしか配置できない。文書内で1つしか配置してはいけない。title
文書のタイトルを表す要素です。ブラウザのタイトルバー等に表示されるテキストです。
link
文書と外部のリソースとの関係を示す要素です。
最もよく利用される用途として、外部スタイルシート(CSS)の読み込みに利用します(rel
属性にstylesheet
を指定し、href
属性に参照するCSSのURLを指定することで、CSSを読み込みます)。
style
文書のスタイル情報を記載する要素です。デフォルトではCSSとして解釈されます。
主に、文書の内部でCSSでスタイルの定義をする際に利用します。
text/css
)script
文書の実行可能なスクリプトを記載する要素です。
スクリプトを直接記述するか、外部参照するスクリプトを指定します。外部参照する場合、src
属性に参照するJavaScriptのURLを指定することで、読み込みます。
text/javascript
)meta
他のメタデータコンテンツで表すことができない任意のメタデータ情報を記載する要素です。
charset
属性で文書全体の文字コードを指定します。name
属性およびcontent
属性を指定することで、その他のメタデータを定義できます。
div
フローコンテンツ用の汎用コンテナです。
主に、スタイルシートやスクリプトを利用する上で、要素のグループ化等が必要な場合に用います。
span
フレージングコンテンツ用の汎用コンテナです。
主に、スタイルシートやスクリプトを利用する上で、要素のグループ化等が必要な場合に用います。
h1
~ h6
文書中の見出しを示す要素です。
p
段落(パラグラフ)を示す要素です。
a
ハイパーリンクを定義する要素です。
href
属性にリンク先のURLを指定することで、そのURLへ飛ぶハイパーリンクを定義します。
ここまでのテキストに関するタグを利用すると、以下のようなHTMLを記述できます。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>タイトル</title>
</head>
<body>
<div>
<h1>h1タグ</h1>
<p>pタグ。</p>
<h2>h2タグ</h2>
<p>これはpタグのテストテキストです。<a href="https://www.example.com/">ここだけaタグです。</a></p>
<p>また、これもpタグのテストテキストです。</p>
</div>
</body>
</html>
以下のように、p
タグの中にdiv
タグやその他のフレージングコンテンツではないものを入れてしまうのは誤りです。
p
タグは子要素にフレージングコンテンツしか含むことができません。
<p>
<div>A</div>
<div>B</div>
<div>C</div>
</p>
以下のように、a
タグの子孫要素にインタラクティブコンテンツ(操作できる要素)を含むことはできません。
<a href="https://www.example.com">
<button type="button">ボタン</button>
</a>
button
タグはこの記事では紹介しませんが、ボタンを表示するインタラクティブコンテンツです。
em
強調されたテキストを示す要素です。
strong
より強調されたテキストを示す要素です。
mark
目印やハイライトされたテキストを示す要素です。
b
注意を引きたいテキストを示す要素です。なお、特定の重要性を示すものではありません。
small
注釈テキストを示す要素です。
ここまでのテキストに関するタグを利用すると、以下のようなHTMLを記述できます。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>タイトル</title>
</head>
<body>
<div>
<h1>h1タグ</h1>
<p>HTMLには、<em>emタグ</em>というものや、<strong>strongタグ</strong>、<mark>markタグ</mark>、そして<b>bタグ</b>というのがあるようです。<small>中には、smallタグという注釈に使われるものもあるよう。</small></p>
</div>
</body>
</html>
img
画像を表示する要素です。
src
属性に表示する画像のURLを指定することで、画像が表示されます。
画像は色々な部分に埋め込むことができ、デザインの要として使われたりもしますが、文章中に埋め込むこともできます。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>タイトル</title>
</head>
<body>
<div>
<h1>h1タグ</h1>
<p>以前撮った写真が、<img src="https://www.node-link.com/image.jpg" width="100">です。</p>
</div>
</body>
</html>
audio
音声コンテンツを表示・再生する要素です。
audio
、video
を配置できない。video
動画コンテンツを表示・再生する要素です。
audio
、video
を配置できない。br
文中(段落中)の改行を表す要素です。
hr
段落間の区切りを表す要素です。
改行や区切りは次のように利用されます。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>タイトル</title>
</head>
<body>
<div>
<h2>集合場所</h2>
<p>当日は以下の場所に集合願います。</p>
<p>〒100-8111<br>東京都<br>千代田区千代田1−1</p>
<hr>
<h2>注意点</h2>
<p>交通費は自費でお願いいたします。</p>
</div>
</body>
</html>
以下のように、br
タグを乱用して見た目を調整するのは、本来のHTMLの目的からは逸れる誤った利用方法です。
<div>
今日は○○をしました。<br>
<br>
今日で3回目の○○ですが、少しずつ慣れてきました。<br>
<br>
明日は××をする予定です。楽しみです。
</div>
以下のように、文のまとまりごとに段落を定義するようにして、デザインは極力CSSに任せましょう。
<div>
<p>今日は○○をしました。</p>
<p>今日で3回目の○○ですが、少しずつ慣れてきました。</p>
<p>明日は××をする予定です。楽しみです。</p>
</div>
table
表を表示するための大元の要素です。
caption
、colgroup
、thead
、tfoot
、tbody
、tr
のみtr
表の行を表す要素です。
td
、th
のみth
表のヘッダーであるセルを表す要素です。
header
、footer
、セクショニングコンテンツ、ヘディングコンテンツを配置できないtd
表のデータであるセルを表す要素です。
表は次のように利用します。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>タイトル</title>
</head>
<body>
<div>
<h2>tableタグのサンプル</h2>
<table>
<tr>
<th>姓</th>
<th>名</th>
<th>Eメール</th>
</tr>
<tr>
<td>佐藤</td>
<td>太郎</td>
<td>sato@example.com</td>
</tr>
<tr><td>田中</td><td>花子</td><td>tanaka@example.com</td></tr>
<tr><td>高橋</td><td>一郎</td><td>takahashi@example.com</td></tr>
</table>
</div>
</body>
</html>
上記の例ではデザインが全く入っていないので区切りが見た目上曖昧ですが、CSSを利用して好きな位置に罫線を引くことも可能です。
ul
配置順に意味を持たないリストを表示するための大元の要素です。
li
のみol
順序付きリストを表示するための大元の要素です。
li
のみli
リストの項目を表す要素です。
リストは次のように利用します。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>タイトル</title>
</head>
<body>
<div>
<h2>ul, olタグのサンプル</h2>
<ul>
<li>佐藤</li>
<li>田中</li>
<li>高橋</li>
</ul>
<ol>
<li>佐藤</li>
<li>高橋</li>
<li>田中</li>
</ol>
</div>
</body>
</html>
以上で終了です、お疲れ様でした。
大体、HTMLにおいて上記の要素を理解していれば、記述する上での最低限の知識はあると言って問題ないと思います。
他によく使う要素としてform
やinput
、button
などの「入力コントロール」がありますが、主にサーバーサイドとの通信に使われる比較的難易度の高い部分になってきますので、「最低限」からは外しました。
HTMLの最低限を理解した次のステップとしては、やはりCSSになってくるかと思います。
その解説記事もゆくゆくは作成できればと思っていますので、よろしくお願いします。