HTML


メインルート・メタデータ

基本構造

<!DOCTYPE html> <html lang="ja"> <head> <title>タイトル</title> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width" /> <link rel="stylesheet" href="" /> <script src=""></script> <link rel="shortcut icon" href="img/favicon.ico" /> <style type="text/css"></style> </head> <body> 内容 </body> </html>

コメントアウト

<!-- 複数行も同様 -->

エスケープシーケンス

&lt;以外はエスケープしなくても問題ない。

エスケープシーケンス対象の文字
&lt; < (less than)
&gt; > (greater than)
&quot; " (quatation)
&apos; ' (apostrophe)
&amp; & (ampersand)
&nbsp; 半角スペース

CSS埋め込み/紐づけ

<!-- 埋め込み --> <style type="text/css"></style> <!-- 紐づけ --> <link rel="stylesheet" href="">

JavaScript埋め込み/紐づけ

<!-- 埋め込み --> <script type="text/javascript"></script> <!-- 紐づけ --> <script src=""></script>

メタデータ

作成者と説明の追加

<meta name="author" content="Rinca Hayamine" /> <meta name="description" content="このページではHTMLのコードのあれこれについて説明しています。" />

OGP

Open Graph Protocol。サイト共有に使われる画像やタイトルなどの設定。

利用するために、headタグに以下の属性を追加する:

<head prefix="og:http://ogp.me/ns#">
<meta property="og:url" content="ページのURL(絶対パス)" /> <meta property="og:type" content="ページの種類" /> <meta property="og:title" content="ページのタイトル" /> <meta property="og:description" content="ページの説明文" /> <meta property="og:site_name" content="サイト名" /> <meta property="og:image" content="サムネイル画像のURL" /> <meta name="twitter:card" content="Twitterカードの種類" /> <meta name="twitter:site" content="@Twitterユーザー名" />

ページの種類

タイプ概要
websiteWebサイトのTOPページ
blogブログのトップページ
articleブログのトップページ
product製品の紹介ページ

Twitterカードの種類

"summary""summary_large_image""app""player"

詳細

Open Graph protocol

コンテンツ区分

見出し要素

<h1>見出し1(最大)</h1> <h2>見出し2</h2> <h3>見出し3</h3> <h4>見出し4</h4> <h5>見出し5</h5> <h6>見出し6</h6>

見出し1(最大)

見出し2

見出し3

見出し4

見出し5
見出し6
要素デフォルトの文字の大きさ
h132px
h224px
h318.72px
h416px
h513.28px
h610.72px

あまり使わない要素

機能や視覚的な意味などを持たないが、これらの要素で囲まれたページの内容が何を意味するのか明確にするために利用する。

要素説明
adress 個人、団体、組織の連絡先を提供していることを示す。
article 「記事」の内容であることを示す。
aside サイドバーなど、メインの内容とは直接関係しない内容。
footer ページの「フッタ」であることを示す。
header ページの「ヘッダ」であることを示す。
hgroup h1などの見出しよりもさらに小さな、副次的な見出し。
main ページの主要な内容。
nav もくじやメニューなど、ナビゲーションのための領域であることを示す。
section ページの内容のセクションであることを示す。この中には見出しを含むことが推奨されている。

テキストコンテンツ

コンテンツ区分要素

CSS装飾の要。

<div></div>

箇条書き

順序なしリスト要素、順序付きリスト要素、説明リスト要素。

<ul> <li>本x1</li> <li>ダイヤモンドx2</li> <li>黒曜石x4</li> </ul> <ol> <li>お金を入れる</li> <li>ボタンを押す</li> <li>商品を下から取り出す</li> </ol> <dl> <dt>爬虫類</dt> <dd>ヘビ<dd> <dd>ワニ<dd> <dd>トカゲ<dd> </dl>
  • 本x1
  • ダイヤモンドx2
  • 黒曜石x4
  1. お金を入れる
  2. ボタンを押す
  3. 商品を下から取り出す
爬虫類
ヘビ
ワニ
トカゲ

[CSS] list-style-type (ul, ol)

circlediscsquareを指定してリストの行頭記号の形状を指定する。

その他

CSSのline-heightで行間を指定できる。

主題区切り(水平線)要素

<hr>

Tips

CSSでbackground-colorborderを指定して太さや色を変える。

段落要素

性質自体はdivと同じ。パラグラフを囲う専用のボックスとしてdivと区別するために使う。

<p></p>

整形済みテキスト要素

preformatted text。基本的にはdivと同じだが、この中では半角スペースと改行がそのまま反映される。

<pre></pre>

あまり使わない要素

要素説明
blockquote 引用文であることを示す。デフォルトでインデントされる。
figure/figcaption 図とキャプション。
menu 表示や用法はul要素と同じ。

インラインテキスト意味づけ

アンカー要素

#から始まるリンクでページ内リンク。指定したIDのところへ飛ぶ。

<a href="#">リンク</a>

target属性

"_blank"にすると、リンクを新しいタブで開くことができる。

title属性

マウスホバーしたときに出るツールチップの内容を設定できる。

download属性

ダウンロードファイルを指定して、そのファイルをダウンロードするようにする。

文字の装飾

<b>太字</b> <i>斜体</i> <s>取り消し線</s> <strong>強調</strong> <u>下線</u>
太字
斜体
取り消し線
強調
下線

改行要素

<br>

インラインコード要素

性質自体はspanと同じ。コードを囲う専用のボックスとしてdivと区別するために使う。

<code></code>

ルビ注釈要素

<ruby> <rb>薔薇</rb> <rp>(</rp> <rt>ばら<rt> <rp>)</rp> </ruby>
薔薇 ( ばら )

コンテンツ区間要素

CSS装飾用。

<span></span>

上付き・下付き文字

x<sup>n</sup> a<sub>n</sub>
xn
an

あまり使わない要素

要素説明
abbr 略語であることを示す。
dfn 文脈中での定義であることを示す。
em 強調されていることを示す。
kbd キーボードなどの入力端末からの入力であることを示す。
mark 目立たせたり強調するためのもの。
q インラインの引用であることを示す。
samp プロンプトなどの出力やログであることを示す。
small 著作権表示や法的表記のような注釈的なテキストで、小さく表示されるもの。
time 時間や期間を表していることを示す。
var 数式やプログラムの変数であることを示す。

画像とマルチメディア

画像埋め込み要素・動画埋め込み要素

<img src=""> <video src="" controls></video>

alt属性 (img)

画像を説明する代替文字列を設定する。

autoplay属性 (video)

データの読み込みが完了し、再生可能な状態になった時点で即座にコンテンツの再生が始まる。

loop属性 (video)

動画の末尾に達すると、自動的に先頭に戻る。

muted属性 (video)

初期状態が消音になる。

poster属性 (video)

動画のダウンロード中に表示される画像のURL。

埋め込み音声要素

<audio src="" controls></audio>

画像内のリンク

map要素とarea要素を利用してSVG画像のような画像を描画する。さらに多角形など、画像の内容に忠実な形状のリンク領域を作ることができる。

area要素

埋め込みコンテンツ

インラインフレーム要素

src属性にhtmlファイルを指定すれば、このボックスの中にそのHTMLを表示できる。

<iframe></iframe>

表コンテンツ

表要素

<table border="1"> <tr> <th>列1</th> <th>列2</th> <th>列3</th> </tr> <tr> <td colspan="2">横2マス</td> <td rowspan="2">縦<br>2マス</td> </tr> <tr> <td colspan="2" rowspan="2">2x2<br>マス</td> </tr> <tr> <td>1マス</td> </tr> </table>
列1 列2 列3
横2マス
2マス
2x2
マス
1マス

行/列ごとの色付け

列ごとのスタイル用にcolgroupは使えない。素直に:nth-childを使う。

table.col_stripe td:nth-child(2n+1) { background-color: #08f; color: #fff; } table.row_stripe tr:nth-child(2n+1) td { background-color: #08f; color: #fff; }
ABCDE
1A1B1C1D1E1
2A2B2C2D2E2
3A3B3C3D3E3
4A4B4C4D4E4
ABCDE
1A1B1C1D1E1
2A2B2C2D2E2
3A3B3C3D3E3
4A4B4C4D4E4

見出し固定

table.sticky_header th { position: sticky; top: 0; }

その他

フォーム

ボタン要素

<button>ボタン</button>

さまざまな入力

<input type="button" value="ボタン"> <input type="checkbox"><input type="checkbox" checked> <input type="color"> <input type="date"> <input type="file"> <input type="password"> <input type="radio" name="demo" checked><input type="radio" name="demo"><input type="radio" name="demo"> <input type="range"> <input type="text">








disabled属性

無効にすることができる。









pattern属性

入力した値が指定されたパターンに一致するか検証するようにする。見た目はデフォルトで変化しないので、独自でスタイルを設定する必要がある。

<input type="text" pattern="[a-z][a-z0-9_]*:[a-z][a-z0-9_]">

placeholder属性

中身がないときに表示するテキスト。

プレイスホルダーに対してCSSを適用する場合は、専用の擬似要素を使う。

input::placeholder { font-style: italic; color: #a0a0a0; }

読み取り専用



自動補完

一部のタイプの入力要素に対して、自動補完の選択肢を設定することができる。

<input type="text" list="ice-cream-flavors"> <datalist id="ice-cream-flavors"> <option value="チョコレート"></option> <option value="ココナッツ"></option> <option value="ミント"></option> <option value="イチゴ"></option> <option value="バニラ"></option> </datalist>

アクセントカラー

CSSでaccent-colorを利用すると、アクセントカラーを変更できる。



明るい色にすると、もともと白かったところが自動で黒になる。

ラベル要素

for属性で指定したidを持つinput要素を操作できるようにする。以下のように、ラベルのテキストをクリックしてチェックボックスを操作できる。

<label for="label_demo">ラベル</label> <input type="checkbox" id="label_demo">

選択要素

<select> <option value="">--選択してください--</option> <option value="dog">犬</option> <option value="cat">猫</option> <option value="hamster">ハムスター</option> <option value="parrot">オウム</option> <option value="spider">クモ</option> <option value="goldfish">金魚</option> </select>

テキストエリア要素

<textarea cols=20 rows=2 style="resize: vertical;"></textarea>

disabled属性

無効にする。

maxlength、minlength属性

最大文字数、最小文字数。

readonly属性

読み取り専用にする。

spellcheck属性

スペルチェックをするかどうか。truedefaltfalseから選ぶ。

placeholder属性

表示用のテキスト。内容が0文字のときのみに表示される。

[CSS] resize

noneで大きさの変更を無効にする。

[CSS] :invalid、:valid

中の値が有効かどうかでスタイルを変えることができる。

進捗インジケーター要素

<progress max="100" value="70">70%</progress><br> <progress max="100" value="30" style="accent-color: #8f0;">30%</progress>
70%
30%

インタラクティブ要素

詳細折りたたみ要素

<details><summary>クリックで展開</summary> <p>こんにちは!</p> </detail>
クリックで展開

こんにちは!

open属性 (details)

先に開いてる状態にする

[CSS] list-style (summary)

summaryタグにCSSでlist-styleの値をnoneにすると三角アイコンを消せる。

SVGとMathML

お楽しみに!

スクリプト

スクリプト無し要素

閲覧者のブラウザの設定でJavaScriptが無効になっているときにのみ表示される要素。

<noscript></noscript>

DOM

Document Object Model。

主要なクラス

データ型概要
Document
Nodeコメントタグやテキストノードも含む、文書内のあらゆるオブジェクト。
ElementNodeを継承する、一般的な要素。
NodeListNodeの配列。
HTMLElementElementを継承している、スタイルが設定できる要素。

要素を取得

querySelector

指定したCSSセレクタを満たす最初のElementを取得する。

document.querySelector(selector); // ドキュメント内 /** @type {Element} */ let elem; elem.querySelector(selector); // ある要素内

querySelectorAll

指定したCSSセレクタを満たす全てのElemenetを取得し、NodeListとして返す。

document.querySelectorAll(selector); // ドキュメント内 /** @type {Element} */ let elem; elem.querySelectorAll(selector); // ある要素内

getElementById

指定したIDのElementを取得する。querySelectorで済むことが多い。

document.getElementById(id);

要素内のHTML

HTMLコードとして要素の内容を設定することができる。

/** @type {Element} */ let elem; elem.innerHTML = '<p>置き換えられた段落</p>';

属性の操作

setAttribute

指定した属性の値を設定する。valueは文字列。

/** @type {Element} */ let elem; elem.setAttribute(name, value);

getAttribute

指定した属性の値を取得する。返り値は文字列。

/** @type {Element} */ let elem; elem.getAttribute(attributeName)

スタイルの設定

値は文字列で指定する。

/** @type {HTMLElement} */ let elem; elem.style.color = '#64ec86'; elem.style.width = '100%';

要素の新規作成

指定した名前の要素を新規作成する。

const newElem = document.createElement(tagName); // 属性などの設定はあとから newElem.id = 'new_id';

要素の追加・削除

appendChild

ノード内の最後に指定したノードを追加する。

/** @type {Node} */ let node; node.appendChild(childElem);

removeChild

指定した子ノードを削除する。

/** @type {Node} */ let node; node.removeChild(childNode);

ページのスクロール

指定した座標へスクロールさせる。

window.scrollTo(0, 1000); window.scrollTo({ top: 100, left: 100, behavior: "smooth", });

イベントの追加

/** @type {Element} */ let elem; elem.addEventListener('click', ev => { console.log('クリックされました'); });

イベント

要素が発行するイベント

イベント名概要
scrollスクロールされたとき
scrollend最後までスクロールがされたとき
wheelマウスホイールを動かしたとき
copyコピーしたとき
cut切り取りしたとき
paste貼り付けしたとき
blurフォーカスを失ったとき
focusフォーカスを得たとき
keydownキーが押されたとき
keyupキーが離されたとき
auxclick左クリック以外のクリックをしたとき
clickクリックしたとき
contextmenu右クリックメニューを開こうとしたとき
dblclickダブルクリックしたとき
mousedownマウスのボタンを押したとき
mouseenterマウスカーソルが要素上に移動したとき
mouseleaveマウスカーソルが要素上から出たとき
mousemoveマウスカーソルが要素内で移動したとき
mouseoutマウスカーソルが要素またはその子要素上から出たとき
mouseoverマウスカーソルが要素またはその子要素上に移動したとき
mouseupマウスのボタンを離したとき
touchend画面のタッチをやめたとき
touchmove要素上をタッチ面がが移動したとき
touchstart画面のタッチをはじめたとき

Eventクラス

ほぼすべてのイベントクラスはEventを継承しているため、ほぼすべてのイベントクラスから以下のプロパティやメソッドを参照できる。

プロパティ・メソッド概要
cancelable読み取り専用。イベントがキャンセル可能かどうか。
currentTarget読み取り専用。イベント発生元の要素。
preventDefault()イベントをキャンセルする。

クリップボードイベント

DocumentElementwindowで発行される。 イベント名は'cut''copy''paste'

clipboardData

切り取られた、コピーされた、貼り付けられた内容。

Canvas Scripting API

お楽しみに!

WebGL API

お楽しみに!

もくじ

ページのトップへ