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

HTMLとは

docs.scrimba.com

あなたが訪れたすべてのWebサイトは、HTMLで書かれたプレーンテキスト文書として始まります。ページに表示される見出し、段落、ボタン、画像、リンクはすべてこのひとつの言語で説明されています。ページにスタイルを適用したり、インタラクティブにしたりする前に、そこに何があるかを説明する必要があり、その説明がHTMLです。

ページはただの構造化されたテキスト

HTMLはHyperText Markup Languageの略です。重要な言葉は**マークアップ**です。HTMLはプレーンテキストを取り、どの部分が見出しで、どれが段落で、どれがリンクかなどをマークアップする方法です。コンピュータに従うべき指示を与えているのではありません。コンテンツにラベルを付けて、ブラウザが各部分が何で、どのように表示するかを知ることができるようにしているのです。

手作業でドキュメントをフォーマットするのと考えてください。タイトルを囲み、セクション見出しに下線を引き、写真の周りに枠を描きます。HTMLはそのブラウザが理解できる方法で、その囲むことと下線を引くことをする方法です。

HTMLは**宣言型**言語です。必要な構造を説明し、それを作成するステップを説明しません。ロジック、ループ、変数はありません。「これは見出しで、これは段落で、これは3つの項目のリスト」と述べると、ブラウザがその説明を画面上のものに変える責任を負います。

これがHTMLが通常の意味ではプログラミング言語ではない理由です。何も計算しません。コンテンツを構造化します。その違いはCSSとJavaScriptを追加すると重要になります。3つのそれぞれが得意とする仕事があり、HTMLの仕事は構造化です。

HTMLはブラウザがDOMと呼ばれるオブジェクトのツリーに解析する宣言型マークアップ言語です(DOM:Document Object Modelで、ページのライブなメモリ内表現で、CSSがスタイルを設定し、JavaScriptが操作します)。ソーステキストが入力であり、DOMはブラウザが実際にレンダリングするものであり、他のすべてのWeb技術が対話するものです。

その枠組みはHTMLの動作の多くを説明します。HTML解析は意図的に寛容です。閉じるタグがないか、要素が不正にネストされていても、エラーがスローされることはほとんどありません。パーサーは定義された復旧アルゴリズムに従い、とにかく有効なツリーを構築するからです。これは機能であり、ずさんさではありません。それは20年間の不完全なページの動作を保ちました。また、「レンダリングできる」は正確性の弱いテストです。ブラウザはほぼすべてのものからDOMを構築するため、マークアップをよく構造化する責任はあなたにあり、パーサーではありません。

html
<h1>Welcome</h1>
<p>This is a paragraph of text on my first web page.</p>

2行、2つの構造:1つは見出し、1つは段落です。ブラウザはラベルを読み、最初の行を大きく太く表示し、2番目を通常の本文テキストとして表示します。

Junoページはただの構造化されたテキスト HTMLはページの部分にラベルを付けて、ブラウザが何であるかを知ることができるようにする方法です。指示を書いているのではなく、コンテンツをマークアップしています。このビットは見出しで、このビットは段落です。それが全体の考え方で、その他すべてはそれに基づいています。
Junoページはただの構造化されたテキスト HTMLは宣言型です。構造を説明し、ブラウザが残りを処理します。ここにはロジックが存在しませんが、これはCSSとJavaScriptと組み合わされる理由です。HTMLの仕事をあなたの頭の中で明確に保つと、他の2つは配置するのが簡単になります。
Junoページはただの構造化されたテキスト ブラウザはマークアップをDOMに解析し、そのツリーは他のすべてが作用するものです。解析は設計上寛容なので、it rendersはほぼ何も証明していません。よく形成された構造はあなたの責任であり、CSSとJavaScriptがあなたが構築したツリーを読み始める瞬間に報酬をもたらします。

要素、タグ、属性

HTMLのほとんどは**要素**で構成されています。要素は通常、開始タグ、コンテンツ、閉じるタグを持ちます。

html
<p>Hello there.</p>

<p>は開始タグ、</p>は閉じるタグ(スラッシュに注意)、「Hello there.」はその間のコンテンツです。合わせると段落要素になります。タグはラベルであり、コンテンツは訪問者が読むものです。

タグに属性を使って追加情報を付与することもできます。リンクはどこに行くかを知る必要があるため、href属性で指定します。

html
<a href="https://scrimba.com">Visit Scrimba</a>

要素は、開始タグ、そのコンテンツ、閉じるタグです。属性は開始タグの内側にname="value"ペアとして置かれ、要素を構成します。hrefはリンク先を設定し、画像上のsrcはファイルを設定し、altはフォールバックテキストを設定します。

html
<a href="https://scrimba.com" target="_blank">Visit Scrimba</a>

コンテンツと閉じるタグがない要素もあります。これらは**空要素**です。<img><br><input><hr>です。それらは属性で必要なすべてを持つため、ラップするものはなく、閉じるものもありません。

語彙は正確に得る価値があります。人々はそれを緩く使用し、後で混乱を引き起こすからです。タグはあなたが入力するテキスト、<p>または</p>です。要素はパーサーが生成するもの全体です。タグ、そのコンテンツ、およびいかなる子孫要素です。属性は開始タグのname="value"ペアで、要素のプロパティを設定します。

空要素(<img><input><br><hr><meta><link>)にはコンテンツモデルがなく、したがって閉じるタグがありません。時々見かける末尾のスラッシュ(<br />)はHTMLではオプションで何の効果もなく、XHTMLの遺産です。属性値は、数字やブール値を表していても文字列です。disabledはその存在だけが真であるブール属性で、<input value="5">は何かがそれを数字として読むまで文字列「5」を保持します。DOMがこのレイヤーで文字列型であることを知ることは、JavaScriptが属性値を読み戻し始めたときの一連のバグを保存します。

Juno要素、タグ、属性 要素は開始タグ、コンテンツ、閉じるタグで、<p>...</p>のようなものです。属性は開始タグに入り、リンクがどこを指すかなどの詳細を追加します。すべてのタグを暗記することについて心配しないでください。必要に応じて、少しずつそれを学びます。
Juno要素、タグ、属性 タグはテキスト、要素は全体、属性はそれを構成します。<img><input>のような空要素に注意してください。コンテンツなし、閉じるタグなし、すべてが属性に存在します。今、語彙を正しくするため、ドキュメントの残りがより綺麗に読みます。
Juno要素、タグ、属性 タグ、要素、属性は3つの異なることを意味し、それらをまっすぐに保つことはデバッグするときに報酬をもたらします。属性値はこのレイヤーの文字列です。数字でもブール値でも、JavaScriptでvalueが最初に文字列として戻ってくるとき、あなたはすでに理由を知っています。空要素のオプションスラッシュは何もしません。それを無視してください。

HTMLとCSSおよびJavaScriptが仕事を分担する方法

完成したWebページは通常、3つの言語から構築され、各言語には1つの仕事があります。

  • HTMLは構造です。見出し、テキスト、画像、ボタンです。
  • **CSS**はスタイルです。色、フォント、間隔、レイアウトです。
  • **JavaScript**は動作です。クリック、入力、またはスクロール時に何が起きるかです。

それを考える一般的な方法があります。HTMLは家の壁と部屋で、CSSはペイントと家具で、JavaScriptは物事をオンにする電気です。構造が存在するまで、塗装または配線するものがないため、最初に壁を学習しています。

3つの言語は層状スタックを形成し、層は意図的です。HTMLは構造と意味を提供します。CSSはその構造を読み、どのように見えるべきかを説明します。JavaScriptはイベントに応答して構造を読み、変更します。

それらを分離しておくことは、早期に構築する価値のある規律です。コンテンツがHTML内に、プレゼンテーションがCSS内に、動作がJavaScript内に存在する場合、他の動作に支障をきたすことなく、それぞれを変更できます。それらを混ぜること(例えば、<br>タグを使用したレイアウトの強制または至る所のインラインスタイル)は最初に機能しますが、すぐに痛みになります。

3つ全体にわたる関心の分離は、ただの整理ではなく、ページをレジリエントにするものです。その意味が完全にHTMLで実行されるページは優雅に低下します。CSSがロードに失敗した場合、コンテンツはまだ読みやすく、順序付けられています。JavaScriptが無効または誤りである場合、コアコンテンツは依然としてそこにあります。これは**プログレッシブエンハンスメント**の実用的な議論です。HTMLで最初に機能するドキュメントを構築してから、上にスタイルと動作をレイヤリングします。

また、アクセシビリティとパフォーマンスの議論でもあります。支援技術はDOMを読むため、HTMLで存在する意味はそれに利用可能ですが、CSSで偽造された意味またはJavaScriptによって後で注入された意味はしばしばそうではありません。またHTMLはブラウザが最初に解析して塗装できるものです。JavaScriptラウンドトリップに依存するコンテンツは、ユーザーが待つコンテンツです。ページの一部がどこに存在すべきかを決定するとき、デフォルトの答えはHTMLであり、構造だけでは仕事ができないときにのみスタックを上げます。

JunoHTMLとCSSおよびJavaScriptが仕事を分担する方法 3つの言語、3つの仕事:HTMLは構造、CSSはスタイル、JavaScriptは動作です。これらの壁が立っているため、ペイントと配線のための場所があるため、HTMLで始まります。
JunoHTMLとCSSおよびJavaScriptが仕事を分担する方法 HTMLの構造、CSSのプレゼンテーション、JavaScriptの動作は、意図的に分けられています。他の動作を破壊することなく1つを変更し、HTML内でレイアウトを偽造する衝動に抵抗します。その習慣は今安価に構築するためですが、後で学習を解く高価です。
JunoHTMLとCSSおよびJavaScriptが仕事を分担する方法 意味をHTMLに置き、CSSまたはJavaScriptが落ちるときページが優雅に低下します。これはまたそれをアクセス可能にして高速にします。プログレッシブエンハンスメントの全体的なケースです。何かがどこに属すべきかについて不確実な場合は、スタックの下から始めて、構造だけではそれを実行できないときにのみ登ります。

完全なページへの最初の外観

これは完全であるが小さいWebページです。次の章で適切にそのすべての部分に会うため、今のところ詳細について心配しないでください。今のところ、既に見たタグと属性すべてで作成されていることに注意してください。

以下は、最小ですが完全なHTMLドキュメントです。すべての実際のページはおおよそこの形から始まります。doctype、<html>ルート、ページに関する情報のための<head>、訪問者が見るコンテンツのための<body>です。

完全なドキュメントには必要なスケルトンがあり、boilerplateのように見えても仔細に読む価値があります。各行には仕事があり、次の章では、それを魔法の呪文として扱わずにコピーするのではなく、各行がその場所を獲得する理由を説明します。

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

上から読んでください。最初の行はこれが現代的なHTMLページであることをブラウザに伝え、<html>はすべてをラップし、<head>はページタイトルのような舞台裏の情報を保ち、<body>は実際に見えるものを保ちます。前からの見出しと段落は、訪問者のためのコンテンツであるため、本文内に存在します。

<head>はメタデータ保有しています。ページに表示されていない、ページのタイトル(ブラウザタブに表示される)や文字エンコーディングのようなページについてのこと。<body>は表示されるコンテンツを保有しています。この分割、ページに関する情報対ページのコンテンツは、すべてのドキュメントが作成する最初の構造的な決定です。

順序と重要性に注意してください。<meta charset>は、パーサーがドキュメントの残りのバイトをデコードする方法を知るので、ヘッドの最初に来ます。<html>lang属性は、スクリーンリーダーと翻訳ツールに通知します。これらのいずれも装飾ではありません。ヘッドはドキュメントがどのように解析され、理解されるかを構成し、本文はその構成が適用されるコンテンツです。次の章、最初のHTMLページについては、この骨組みを1行ずつ分解します。

Juno完全なページへの最初の外観 すべてのページは小さな繰り返しの骨組みから構築されています。doctype、<html><head><body>を包括しています。ヘッドは舞台裏の情報で、本文は人々が見るものです。次に適切にそれを分解するため、クイックルックは今必要なすべてです。
Juno完全なページへの最初の外観 コア分割はヘッドのメタデータと本文の表示コンテンツです。あなたが書くほぼすべてのドキュメントはこの正確な形から開始するため、それは視力に認識する価値があります。次の章は各行を歩きます。
Juno完全なページへの最初の外観 骨組みは理由のために順序付けられています。パーサーが残りをデコードできるようにcharsetの前のコンテンツと、支援技術と翻訳のためのlangです。それのいずれもフィラーとして扱わないでください。今、構造と理解すると、ヘッドはあなたが貼り込む魔法のブロックのように感じることを停止します。