Containers"]
G --> J["
![]()
Images"]
style A fill:#e1f5fe
style B fill:#f3e5f5
style C fill:#fff3e0
style G fill:#e8f5e8
```
まず、すべてのHTMLドキュメントに必要な基本的な基盤を追加しましょう。
### DOCTYPE宣言とルート要素
HTMLファイルの最初の2行は、ブラウザへのドキュメントの「紹介」として機能します:
```html
```
**このコードが何をするか:**
- ``を使用してドキュメントタイプをHTML5として宣言
- ページコンテンツをすべて含むルート``要素を作成
- 適切なブラウザレンダリングのための最新のウェブ標準を確立
- 異なるブラウザやデバイス間で一貫した表示を保証
> 💡 **VS Codeのヒント**: VS CodeでHTMLタグにカーソルを合わせると、MDN Web Docsからの使用例やブラウザ互換性の詳細などの役立つ情報が表示されます。
> 📚 **さらに学ぶ**: DOCTYPE宣言は、非常に古いウェブサイトをサポートするために使用されていた「クイックスモード」にブラウザが入るのを防ぎます。現代のウェブ開発では、シンプルな``宣言を使用して[標準準拠のレンダリング](https://developer.mozilla.org/docs/Web/HTML/Quirks_Mode_and_Standards_Mode)を保証します。
### 🔄 **教育的チェックイン**
**一時停止して振り返る**: 続行する前に、以下を理解していることを確認してください:
- ✅ なぜすべてのHTMLドキュメントにDOCTYPE宣言が必要なのか
- ✅ ``ルート要素が何を含むのか
- ✅ この構造がブラウザがページを正しくレンダリングするのを助ける方法
**簡単な自己テスト**: 「標準準拠のレンダリング」とは何を意味するか、自分の言葉で説明できますか?
## 必要なドキュメントメタデータの追加
HTMLドキュメントの``セクションには、ブラウザや検索エンジンが必要とする重要な情報が含まれていますが、訪問者が直接ページ上で見ることはありません。これは、ウェブページが正しく機能し、異なるデバイスやプラットフォームで正しく表示されるのを助ける「舞台裏」の情報です。
このメタデータは、ブラウザにページの表示方法、使用する文字エンコーディング、異なる画面サイズの処理方法を伝えます。これらは、プロフェッショナルでアクセス可能なウェブページを作成するために不可欠です。
### タスク: ドキュメントヘッドを追加する
開いている``タグと閉じている``タグの間にこの``セクションを挿入してください:
```html
Welcome to my Virtual Terrarium
```
**各要素が達成することの内訳:**
- ブラウザタブや検索結果に表示されるページタイトルを設定
- 世界中で適切なテキスト表示を行うためにUTF-8文字エンコーディングを指定
- 最新バージョンのInternet Explorerとの互換性を確保
- ビューポートをデバイス幅に合わせて設定し、レスポンシブデザインを構成
- 初期ズームレベルを設定してコンテンツを自然なサイズで表示
> 🤔 **考えてみてください**: もしビューポートメタタグを`
`のように設定したらどうなるでしょうか?これによりページが常に600ピクセル幅に固定され、レスポンシブデザインが壊れてしまいますについてさらに学びましょう。
## ドキュメントボディの構築
``要素にはウェブページのすべての目に見えるコンテンツが含まれています。訪問者が見るものや操作するものすべてがここにあります。``セクションがブラウザへの指示を提供したのに対し、``セクションには実際のコンテンツ(テキスト、画像、ボタン、その他の要素)が含まれています。
ボディ構造を追加し、HTMLタグがどのように連携して意味のあるコンテンツを作成するかを理解しましょう。
### HTMLタグ構造の理解
HTMLはペアタグを使用して要素を定義します。ほとんどのタグには`
`のような開始タグと`
`のような終了タグがあり、その間にコンテンツが入ります: `
Hello, world!
`。これにより、「Hello, world!」というテキストを含む段落要素が作成されます。
### タスク: ボディ要素を追加する
HTMLファイルを更新して``要素を含めてください:
```html
Welcome to my Virtual Terrarium
```
**この完全な構造が提供するもの:**
- 基本的なHTML5ドキュメントフレームワークを確立
- 適切なブラウザレンダリングのための重要なメタデータを含む
- 目に見えるコンテンツのための空のボディを作成
- 現代のウェブ開発のベストプラクティスに従う
これで、テラリウムの目に見える要素を追加する準備が整いました。次のレッスンでCSSスタイリングを行うために、コンテンツの異なるセクションを整理するためのコンテナとして`
`要素を使用し、植物の画像を表示するための`
![]()
`要素を使用します。
### 画像とレイアウトコンテナの操作
画像はHTMLでは特別な存在で、「自己閉じタグ」を使用します。`
`のようにコンテンツを囲む要素とは異なり、`
![]()
`タグは`src`(画像ファイルパス)や`alt`(アクセシビリティ)のような属性を使用してタグ内に必要な情報をすべて含みます。
画像をHTMLに追加する前に、プロジェクトファイルを適切に整理し、画像フォルダーを作成して植物のグラフィックを追加する必要があります。
**まず、画像をセットアップする:**
1. テラリウムプロジェクトフォルダー内に`images`というフォルダーを作成
2. [ソリューションフォルダー](../../../../3-terrarium/solution/images)から植物画像をダウンロード(合計14枚の植物画像)
3. 新しい`images`フォルダーにすべての植物画像をコピー
### タスク: 植物表示レイアウトを作成する
次に、``タグの間に植物画像を2列に整理して追加してください:
```html
```
**このコードで何が行われているかステップごとに説明:**
- すべてのコンテンツを保持する`id="page"`を持つメインページコンテナを作成
- 2つの列コンテナ`left-container`と`right-container`を確立
- 左列に7つの植物、右列に7つの植物を整理
- 各植物画像を個別に配置するために`plant-holder`divで囲む
- 次のレッスンでCSSスタイリングを行うために一貫したクラス名を適用
- 後でJavaScriptでの操作のために各植物画像にユニークなIDを割り当てる
- 画像フォルダーを指す適切なファイルパスを含む
> 🤔 **考えてみてください**: 現在、すべての画像に同じaltテキスト「plant」が設定されています。これはアクセシビリティには理想的ではありません。スクリーンリーダーのユーザーは「plant」という言葉を14回繰り返し聞くことになり、各画像がどの植物を示しているか分かりません。各画像に対してより良い、より具体的なaltテキストを考えることができますか?
> 📝 **HTML要素の種類**: `
`要素は「ブロックレベル」で全幅を占めますが、`
`要素は「インライン」で必要な幅だけを占めます。これらの``タグをすべて`
`タグに変更したらどうなると思いますか?
### 🔄 **教育的チェックイン**
**構造の理解**: HTML構造を確認するために少し時間を取ってください:
- ✅ レイアウト内の主要なコンテナを識別できますか?
- ✅ 各画像にユニークなIDがある理由を理解していますか?
- ✅ `plant-holder`divの目的をどのように説明しますか?
**視覚的検査**: HTMLファイルをブラウザで開いてください。以下が表示されるはずです:
- 植物画像の基本リスト
- 2列に整理された画像
- シンプルでスタイリングされていないレイアウト
**覚えておいてください**: このシンプルな外観は、CSSスタイリング前のHTMLのあるべき姿です!
このマークアップを追加することで、植物が画面に表示されますが、まだ洗練されていません。それは次のレッスンでCSSが担当します!現時点では、コンテンツを適切に整理し、アクセシビリティのベストプラクティスに従った堅実なHTML基盤が完成しています。
## アクセシビリティのためのセマンティックHTMLの使用
セマンティックHTMLとは、外観だけでなく意味や目的に基づいてHTML要素を選択することを意味します。セマンティックマークアップを使用すると、ブラウザ、検索エンジン、スクリーンリーダーなどの支援技術にコンテンツの構造と意味を伝えることができます。
```mermaid
flowchart TD
A[Need to add content?] --> B{What type?}
B -->|Main heading| C[""]
B -->|Subheading| D[", , etc."]
B -->|Paragraph| E["
"]
B -->|List| F["
, "]
B -->|Navigation| G["