Skip to content
This page has been auto-translated and may contain errors.View in English

最初のHTMLページ

docs.scrimba.com

すべてのHTMLドキュメントは同じ小さな骨組みを共有しています。ドキュメントタイプを宣言する行、すべてをラップするルート要素、ページに関する情報のための head、人々が見るコンテンツのための body です。この章ではその骨組みを1行ずつ分解し、ブラウザで開けるファイルに保存します。

ドキュメント骨組み

すべてのページが始まる骨組みはこれです。正確にコピーして、body 内の部分を変更できます。

html
<!DOCTYPE html>
<html lang="en">
  <head>
    <title>My first page</title>
  </head>
  <body>
    <h1>Hello</h1>
    <p>This is my first web page.</p>
  </body>
</html>

最初の行の <!DOCTYPE html> は、これが最新のHTMLページであることをブラウザに伝えます。その後に ルート要素 である <html> が続き、ページ上のすべてを包みます。その中には2つのボックスがあります。<head> は舞台裏の情報用で、<body> は訪問者が見る言葉と画像用です。見出しと段落は body に入ります。body がショーの部分だからです。

全体をラベル付きの小包だと考えてください。doctype は使う郵便制度を示す切手で、<html> が箱、head が外側のラベル、body が中に詰まっているものです。

すべてのドキュメントは同じ4つの部分から構成されており、各部分の役割で名前を付けるとわかりやすくなります。

html
<!DOCTYPE html>
<html lang="en">
  <head>
    <title>My first page</title>
  </head>
  <body>
    <h1>Hello</h1>
    <p>This is my first web page.</p>
  </body>
</html>

<!DOCTYPE html>ドキュメント型宣言 です。これはHTMLタグではなく、スイッチです。この存在により、ブラウザは1990年代のページのために保持された古い quirks モードではなく、標準モードで描画するよう指示されます。<html> はルート要素で、他のすべての要素を含む単一の要素です。lang="en" 属性はページの言語を指定します。次に <head> はページに関する情報を保持し、<body> はコンテンツを保持します。インデンテーションは必須ではありませんが、head と body を <html> の内側にネストし、それらの子をそれらの内側にネストすることで、構造を読みやすく保つことができます。

骨組みはボイラープレートに見えるかもしれませんが、各行がブラウザのドキュメント処理方法を変えます。

html
<!DOCTYPE html>
<html lang="en">
  <head>
    <title>My first page</title>
  </head>
  <body>
    <h1>Hello</h1>
    <p>This is my first web page.</p>
  </body>
</html>

<!DOCTYPE html> はドキュメント型宣言で、角括弧があるにもかかわらず要素ではありません。これはモード切り替えスイッチです。これにより、ブラウザは 標準モード を使用します。つまり、レイアウトとボックスサイジングの現在の仕様に従います。これを省略するとブラウザは quirks モードに戻ります。これは1990年代の動作をエミュレートし、ボックス幅などの詳細が間違います。今日のHTMLに正しい doctype は正確に1つあり、それはこの短いものです。XHTML 時代の長くバージョン管理された doctype は廃止されました。

<html> はルート要素で、ドキュメント木全体が下降する単一のノードです。他のすべてはそのデセンダントです。lang 属性がここに属するのは、ドキュメント全体の基本言語を設定するためです。<head><body> はその唯一の2つの許可されたチルドレンで、その順序です。メタデータ優先、コンテンツ次点。<head> または <body> タグを省略すると、パーサーはそれらを挿入します(また許容性のあるパースです)が、それらを書くことでソースと結果のツリーが一致するようになります。これはどちらかについて推論しているときに必要です。

Junoドキュメント骨組み すべてのページは同じ骨組みから始まります。<!DOCTYPE html>、次に <head><body> をラップする <html>。ボディに独自の言葉を入れてそのままコピーします。まだこれを暗記する必要はありません。何度も入力すれば自動的に身につきます。
Junoドキュメント骨組み 4つの部分、それぞれに役割があります。doctype は標準モードをオンにします。<html> はルートで、<head> はページに関する情報、<body> はコンテンツです。lang 属性は <html> に置かれます。ドキュメント全体を説明するためです。この形を指に入れて、新しいページはいつも同じ確実な方法で始まります。
Junoドキュメント骨組み doctype はタグではなく、モード切り替えスイッチです。これにより標準モードが得られ、なければ quirks モードと間違ったボックスサイジングが得られます。<html> はルートで、正確に2つのチルドレン(head 次点 body)があり、忘れるとパーサーはそれらを挿入します。ソースが実際に推論しているツリーと一致するようにとにかく書きます。

head と body に何が入るか

<html> 内の2つのボックスには異なる役割があります。<head> はブラウザが知る必要があるがページで訪問者が読まないことを保持しています。<body> は訪問者が見るすべてを保持しています。

html
<head>
  <title>My recipe notes</title>
</head>
<body>
  <h1>Banana bread</h1>
  <p>Mix, pour, bake for an hour.</p>
</body>

<title> は head に座り、ページの名前です。ブラウザタブに表示されますが、ページの真ん中には表示されません。見出しと段落は body に座るので、ページ自体に表示されます。始めるシンプルなルール。訪問者が読むべきものなら、body に入ります。

分割はページに関する情報対ページのコンテンツです。<head>メタデータ 用です。ドキュメント自体ではなくドキュメントに関するデータです。<body> はコンテンツ自体で、ブラウザウィンドウで描画される部分です。

html
<head>
  <title>Banana bread recipe</title>
</head>
<body>
  <h1>Banana bread</h1>
  <p>Mix, pour, bake for an hour.</p>
</body>

最も明確な例は <title> です。ページのコンテンツの一部ではないため head に生活しますが、実際の仕事をします。タブに名前を付け、誰かがページをブックマークするときに保存されるラベルで、検索エンジンが結果に表示する見出し です。他の head 要素も同じロジックに従います。ページを設定または説明します。head 内のものは何もページ領域に描画されないため、見出しまたは画像を head に入れたい場合は、代わりに body に属しています。

head はドキュメントが自分自身を記述して構成する場所です。body はその説明が適用されるコンテンツです。head 内のすべてはメタデータで、ページエリアに表示されるコンテンツではなく、ドキュメントに関するデータです。

html
<head>
  <title>Banana bread recipe</title>
  <meta name="description" content="A quick loaf: mix, pour, bake." />
</head>
<body>
  <h1>Banana bread</h1>
  <p>Mix, pour, bake for an hour.</p>
</body>

<title> はいくつかの理由で場所を獲得しています。ブラウザタブに名前を付けます。ページがブックマークまたは共有されるときのデフォルトテキストです。また検索結果でクリック可能な見出しで、ページの最高価値の文字列の1つです。<meta name="description"> 要素は、検索エンジンがその見出しの下に表示する可能性のあるサマリー行を提供します。ページに描画されることはありません。その点についてです。

head は他のファイルを引き込む要素も保持しています。CSS の <link rel="stylesheet"> とJavaScript の <script> ですが、スクリプトはしばしばコンテンツが最初に解析されるように body の終わりに座ります。これをきれいに保つルール。head はbody より前に解析されるため、ページがコンテンツを読む前に設定する必要があるもの(エンコーディング、スタイルシート、タイトル)が head に属し、実際に人が読むすべてが body に属しています。

Junohead と body に何が入るか Head は舞台裏、body はショー。<title> は head に生活してブラウザタブに名前を付けます。見出しと段落は人々が読む body に生活しています。訪問者がそれを見るべきなら、body に入ります。その1つの質問がほぼすべてを分類します。
Junohead と body に何が入るか Head はメタデータ、ページに関する情報。body はページのコンテンツです。<title> はタブ名、ブックマークラベル、検索見出しすべて一度に、これが head に場所を獲得する理由です。head 内のものは何もページに描画されないため、表示しようとした見出しまたは画像は body に属しています。
Junohead と body に何が入るか Head はドキュメントを説明し設定し、body はその設定が適用されるコンテンツで、head が最初に解析されます。<title><meta name="description"> は検索エンジンが読む高価値の文字列で、ページに描画されることはありません。ページがコンテンツの前に設定する必要があるもの、エンコーディングとスタイルシートなら head に入ります。人が読むすべてが body に入ります。

文字セットとビューポート

ほぼすべてのページの head に2つ以上の行が入ります。そのままコピーできます。

html
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>My first page</title>
</head>

最初の行は、テキストの読み方をブラウザに伝えます。アクセント付き文字、カーリークォート、絵文字が奇妙なシンボルに変わる代わりに正しく出ます。2番目の行は、ページをスクリーン幅に合わせるようブラウザに伝えます。これにより、デスクトップページの小さなズームアウト版ではなく、電話で見栄えが良くなります。まだすべての単語を理解する必要はありません。head の上部近くに両方を置き、ページが動作します。

2つの <meta> 要素は本質的にすべてのページの head に属します。<meta> 要素は属性の単一の部分のメタデータを実行する void 要素です。

html
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>My first page</title>
</head>

最初は 文字エンコーディング を設定します。保存されたバイトを文字に戻すためにブラウザが使用するスキーム。UTF-8 は英語から絵文字まで、使用する可能性のあるすべての文字をカバーするエンコーディングで、これが最新のデフォルトです。この行を head の最初に置きます。

2番目は ビューポート タグで、ページがモバイルスクリーンにマップする方法を制御します。width=device-width はページの幅を実際のデバイス幅として扱うようにブラウザに伝えます。initial-scale=1.0 は開始ズームを100%に設定します。これなければ、スマートフォンはページがデスクトップ用に設計されたと仮定し、全体を縮小してフィットさせるため、テキストは読みづらいほど小さいサイズで到着します。これら2行は交渉ほぼ不可能なため、スターターテンプレートはデフォルトで含めています。

2つの <meta> 要素は実質的に必須で、理由はブラウザがファイルをどのように処理するかにあります。

html
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>My first page</title>
</head>

<meta charset> は文字エンコーディングを宣言します。ファイルの生のバイトをキャラクター(入力した文字、句読点、シンボル)に変換するためにブラウザが使用するマッピング。これは head の最初のものでなければならず、理想的にはドキュメントの最初の1024バイト内です。理由はシーケンスの問題です。パーサーはそれらのいずれかを読む前に、バイトをテキストにデコードする必要があります。charset 宣言を含む。ブラウザは仮のデコーディングで開始して、宣言された charset が異なる場合は再解析して矛盾を解決します。宣言を最初に置くと、何も再解析することはありません。UTF-8 を使用してください。Unicode 全体をエンコードし、最新のウェブのデフォルトと見なされています。

戻る <html> 上の lang 属性も解析の懸念事項ですが、セマンティックです。ドキュメントの自然言語を推測できないソフトウェアのために名前を付けます。スクリーンリーダー (見えない人のためにページを読み上げるソフトウェア)は lang を使用して正しい発音ルールと音声を選択し、翻訳ツールはそれを使用してソース言語を知ります。失踪または間違った lang は、盲目のユーザーに間違いのアクセント、またはそれ以上に、音韻的に意味不明なページを読んだものを与えます。

<meta name="viewport"> はモバイルレンダリングのデフォルトに対処します。初期のスマートフォンは、デスクトップのみのページに対処するため、約980ピクセル幅の仮想キャンバスにレンダリングし、スクリーンに合わせるために縮小しました。width=device-width はそれをオーバーライドし、ページのレイアウト幅をデバイス自体の幅にマップして、レスポンシブCSSが実際のスクリーンサイズで機能するようにします。initial-scale=1.0 は初期ズームを1:1に設定します。このタグを省略するとレスポンシブレイアウトは980ピクセルの仮定に対して計算され続けるため、慎重に構築したモバイルデザインはデスクトップ幅でレンダリングされ、次に縮小され、全体の演習を破棄します。タグ自体はスタイリングを行いませんか。スタイルする正しい寸法を CSS に指渡します。

Juno文字セットとビューポート 2行がほぼすべてのページの head の上部近くに入ります。1つはテキストが正しく読まれるように、アクセントと絵文字を含めて、1つはページが電話スクリーン用に収まるように。両方をコピーして入れて、まだ言葉遣いについて深く考えないでください。彼らはあなたが午後を追いかけるであろう問題を静かに修正します。
Juno文字セットとビューポート<meta charset="UTF-8"> はバイトが文字になる方法を設定するため、head の最初に置きます。UTF-8 は平文の英語から絵文字まですべてをカバーしています。width=device-width を持つビューポートタグは、電話がデスクトップサイズのページを何もないほど縮小することを妨げます。ビューポート行をスキップして、モバイルレイアウトが小さいサイズで到着するため、これは古典的な「私のサイトが電話で壊れているのはなぜですか」バグです。
Juno文字セットとビューポートcharset は最初に来ます。パーサーは宣言自体を読む前にバイトをテキストにデコードする必要があるためです。上部に置くと再解析するものは何もありません。<html> 上の lang は、スクリーンリーダーが発音を選択するために使用するもので、間違った値はページを間違ったアクセントで読みます。ビューポートタグをドロップし、レスポンシブCSSは980pxキャンバスに対して計算されるため、構築したモバイルデザインはデスクトップ幅でレンダリングされ、縮小されます。

.htmlファイルの保存と開き方

HTMLページはプレーンテキストファイルなので、任意のテキストエディタで作成できます。重要なことは名前です。.html で終了するように保存します。

html
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>My first page</title>
  </head>
  <body>
    <h1>Hello</h1>
    <p>This is my first web page.</p>
  </body>
</html>

それを index.html として保存してください。次にコンピュータのファイルを見つけてダブルクリックしてください。ブラウザで開き、見出しと段落を表示します。サーバーを起動するものも、インストールするものもありません。.html の終わりは、ドットやコードの壁ではなく、Webページとして開くようにコンピュータに信号を送ります。言葉を変更して保存し、ブラウザタブを更新して更新を確認してください。

HTMLドキュメントはプレーンテキストファイルです。任意のエディタで書き込み、.html 拡張子で保存してください。ファイル拡張子(名前のドットの後の部分)は、オペレーティングシステムとブラウザがファイルをHTMLとして扱うようにするものです。

html
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>My first page</title>
  </head>
  <body>
    <h1>Hello</h1>
    <p>This is my first web page.</p>
  </body>
</html>

それを index.html として保存してください。index という名前は早期に採用する価値のある慣例です。Webサーバーはフォルダーを提供するときはデフォルトで index.html を探すため、後で構築するサイトのホームページになります。今それを表示するには、ファイルをダブルクリックするか、ブラウザウィンドウにドラッグしてください。アドレスバーは file:///Users/あなた/index.html のような読み取りをします。file:// はブラウザがネットワークではなくディスクから直接読んでいることを示しています。編集はループです。ファイルを変更して、保存してからタブを更新してください。

HTMLドキュメントはプレーンテキストで、ブラウザはそれをレンダリングするためにファイル自体のみを必要とします。.html 拡張子で保存してください。オペレーティングシステムはそれをブラウザと関連付け、ブラウザは文字通りに表示するテキストではなくHTMLとして提供します。

html
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>My first page</title>
  </head>
  <body>
    <h1>Hello</h1>
    <p>This is my first web page.</p>
  </body>
</html>

ローカルファイルを開くと、file:// プロトコルが使用されます。アドレスは file:///Users/あなた/index.html のようなもので、ブラウザはディスクから直接読みます。これは単一ページには完璧ですが、上限があります。file:// では、ブラウザは厳密な 同一生成元ポリシー (ページが他の場所から読み込める内容を制限するセキュリティルール)を適用し、すべてのローカルファイルを別々の生成元として扱うため、データを読み込むための fetch リクエスト、ESモジュールのインポートがブロックされます。http:// で提供されることに依存する機能はダブルクリックされたファイルから機能しません。

その時点に達すると、修正は ローカル開発サーバー です。http://localhost でフォルダーを提供する小さなプログラムなので、ブラウザはそれを実際のサイトとして扱います。エディタの拡張機能と1行のコマンドはこれを行います。ただし、プレーンな最初のページでは、file:// は正確です。サーバーなし、ビルドステップなし、依存関係なし。ファイルを保存してダブルクリックし、ブラウザがレンダリングします。index.html 名を保持する価値があります。サーバーがディレクトリーを提供するときは、デフォルトで index.html を返すため、http:// に移動したらエントリーポイントになります。

Junohtmlファイルの保存と開き方 ウェブページは <code>.html</code> で名前が終わるテキストファイルです。<code>index.html</code> として保存し、ダブルクリックすれば、セットアップがまったくなく、ブラウザがすぐに開きます。変更を確認するには、ファイルを保存してタブを更新します。その保存と更新のループがページ構築のリズム全体です。
Junohtmlファイルの保存と開き方<code>.html</code> 拡張子でファイルを保存すると、ブラウザはそれをページとしてレンダリングすることを知っています。ダブルクリックするか、ドラッグインすると、アドレスバーに <code>file://</code> が表示されます。ディスクから読んでいることを意味します。<code>index.html</code> という名前を付けてください。サーバーは後でそれをデフォルトのホームページとして扱うため。次にループです。編集、保存、更新します。
Junohtmlファイルの保存と開き方 ダブルクリックするとファイルが <code>file://</code> を開き、1つのページには問題ありませんが、厳密な同一生成元ポリシーを実行するため、<code>fetch</code> とESモジュールのインポートがブロックされます。その壁に当たったら、ローカルdev サーバーを実行してページが <code>http://localhost</code> を読み込み、実際のサイトのように動作するようにします。<code>index.html</code> という名前を保持してください。サーバーがフォルダーのデフォルトを返すため。