HTMLの基本構造を徹底解説|DOCTYPE・html・head・bodyの役割

HTMLの基本構造4つの要素の役割

HTMLの基本構造はDOCTYPE・html・head・bodyの4要素で成り立ちます。それぞれの役割と書く理由、lang属性やcharset・viewportの意味、header/main/article/footerの使い分けを解説し、コピーして使えるテンプレートも紹介します。

この記事でわかること

  • HTMLの基本構造はDOCTYPE・html・head・bodyの4つで成り立つこと
  • 4要素それぞれの役割と書く理由(互換モード回避・文字化け防止など)
  • lang属性・charset・viewportなどheadに置く要素の意味
  • HTML5のセマンティックタグ(header/main/article/footer)の使い分け
  • コピーして使える基本構造テンプレートと、よくある構造ミスの直し方

参考: MDN Web Docs「HTML の基本」(参照)/W3C「HTML Standard」

HTMLそのものをまだ触っていない方は、先に全体像をつかむと理解が早くなります。

結論を先に書きます

HTMLの基本構造は、どんなページでも共通です。覚えるべき要素は4つだけ。DOCTYPE宣言・htmlタグ・headタグ・bodyタグです。

この4つの「入れ子の順番」と「役割の違い」さえ押さえれば、いきなり複雑なページを見ても迷いません。逆にここが曖昧だと、レイアウト崩れや文字化けの原因がつかめなくなります。

この記事の要点
  • 基本構造は DOCTYPE → html →(head・body) の入れ子で固定
  • headは画面に出ない情報、bodyは画面に出る中身という役割分担
  • 日本語サイトは lang="ja" と charset="UTF-8" が事実上の必須
  • headとbodyは並列。入れ子にすると壊れる

それぞれの要素を、書く理由とあわせて順に見ていきます。

HTMLの基本構造

  • DOCTYPE宣言 → htmlタグ(文書全体のルート・langで言語を指定)
    • headタグブラウザ向けのメタ情報。画面には表示されない
    • bodyタグユーザーに見せるコンテンツ。画面に表示される

図:DOCTYPE宣言→htmlの中に、headとbodyが並列で入る。headとbodyは入れ子にしない。

目次

HTMLの基本構造とは

どんなに複雑なWebページも、土台になる骨組みは同じです。この骨組みを理解することが、Web制作の第一歩になります。

HTMLファイルは、次の4つの要素で構成されます。まずは全体像を眺めてみてください。

<!DOCTYPE html> <html lang="ja">   <head>     <!-- メタ情報 -->   </head>   <body>     <!-- 表示コンテンツ -->   </body> </html> 

この4要素には、それぞれ明確な役割があります。下の表で全体を整理してから、個別に深掘りしていきましょう。

要素役割画面表示
HTML5文書だと宣言するしない
文書全体のルート・言語指定しない
ブラウザ向けのメタ情報しない
ユーザーに見せるコンテンツする

ポイントは、画面に表示されるのは の中身だけという点です。残り3つは「ブラウザへの指示書」だと考えるとスッキリします。

DOCTYPE宣言の役割

最初に書くのが、DOCTYPE宣言です。

<!DOCTYPE html> 

何を宣言しているか

これは「このファイルはHTML5で書かれています」とブラウザに伝える宣言文です。タグではなく宣言なので、終了タグはありません。

必ず書く理由

DOCTYPE宣言がないと、ブラウザが「互換モード(Quirks Mode)」で動きます。互換モードでは、CSSのレイアウトが意図どおりに表示されないなどの不具合が起きやすくなります。

そのため、すべてのHTMLファイルの1行目に必ず書くのが基本です。

ポイント
  • <!DOCTYPE html> の大文字・小文字はどちらでも動作する
  • 慣習としては大文字で書くことが多い

htmlタグとlang属性の役割

DOCTYPE宣言のすぐ下に置くのが、 タグです。

<html lang="ja">   ... </html> 

htmlタグは文書全体のルート

は、HTML文書全体を囲むルート(root=根)要素です。head・bodyを含むすべての内容は、このタグの中に書きます。

lang属性で言語を伝える

lang="ja" は言語コードの指定です。代表的な値は次のとおりです。

値言語
ja日本語
en英語
zh中国語

lang属性は地味ですが、次の3点で効いてきます。

  1. スクリーンリーダー(読み上げツール)が正しい言語で読み上げる
  2. 検索エンジンがページの対象言語を認識しやすくなる
  3. ブラウザの自動翻訳が正確に動作する

日本語サイトでは lang="ja" を設定しておきましょう。

headタグの役割と書く要素

次は です。ここはユーザーには見えませんが、Web制作では非常に重要なエリアになります。

headとbodyの役割分担

headタグ
画面表示
されない
入れるもの
charset・viewport・title・description・CSSの読み込み
役割
ブラウザや検索エンジンへの指示書
bodyタグ
画面表示
される
入れるもの
header・main・article・footer などのコンテンツ
役割
読者が実際に目にする中身

図:headは画面に出ない指示書、bodyは画面に出る中身。2つは並列で入れ子にしない。

<head>   <meta charset="UTF-8">   <meta name="viewport" content="width=device-width, initial-scale=1.0">   <meta name="description" content="ページの説明文">   <title>ページタイトル | サイト名</title>   <link rel="stylesheet" href="style.css"> </head> 

headは「画面に出ない情報」のエリア

には、ブラウザや検索エンジンに伝える情報を書きます。head内の内容は画面に表示されません。

headに書く主な要素

headに置く代表的な要素を、役割とあわせて整理します。

要素役割
文字コードの指定。日本語の文字化けを防ぐ
スマホ表示の最適化。なければ縮小表示になる
</code></td><td>タブ・検索結果に出るタイトル。SEOに直結</td></tr><tr><td><code><meta name="description"></code></td><td>検索結果の説明文。クリック率に影響</td></tr><tr><td><code><link rel="stylesheet"></code></td><td>外部CSSファイルの読み込み</td></tr></tbody></table></figure> <p class="wp-block-paragraph">補足を3点だけ。<code>charset</code> は head のできるだけ先頭に書きます。<code>title</code> はキーワードを含めた30〜35文字が目安です。<code>description</code> は80〜90文字が目安で、直接の順位要因ではないものの、クリック率(CTR)に影響します。</p> <p class="wp-block-paragraph">CSSの役割や書き方をまだ知らない方は、<a href="https://awcs.org/learning/css/what-is-css/" target="_blank" rel="noopener noreferrer">CSSとは?書き方の基本・HTMLとの違いをわかりやすく解説</a> もあわせて読むと、<code><link></code> の意味がつかみやすくなります。</p> <h2 class="wp-block-heading">bodyタグとセマンティック構造</h2> <p class="wp-block-paragraph">最後が <code><body></code> です。読者が実際に目にするのは、ここに書いた中身だけです。</p> <p class="wp-block-paragraph"><pre><code><body> <header> <h1>サイト名</h1> <nav>...</nav> </header> <main> <article> <h2>記事タイトル</h2> <p>本文テキスト</p> </article> </main> <footer> <p>&copy; 2026 サイト名</p> </footer> </body> </code></pre></p> <h3 class="wp-block-heading">bodyは「画面に出る中身」のエリア</h3> <p class="wp-block-paragraph"><code><body></code> には、<strong>実際に表示されるすべての内容</strong>を書きます。テキスト・画像・リンク・フォームなど、ユーザーが見るものはすべてbody内です。</p> <h3 class="wp-block-heading">body内のセマンティックタグ</h3> <p class="wp-block-paragraph">HTML5以降は、ページ内の役割に応じた<strong>セマンティックタグ</strong>を使うことがすすめられています。意味のあるタグで囲むと、検索エンジンや支援技術が構造を理解しやすくなります。</p> <figure class="wp-block-table dgk-scroll"><table class="dgk-sm"><thead><tr><th>タグ</th><th>役割</th></tr></thead><tbody><tr><td><code><header></code></td><td>ページ上部(ロゴ・ナビゲーション)</td></tr><tr><td><code><nav></code></td><td>ナビゲーションリンク</td></tr><tr><td><code><main></code></td><td>メインコンテンツ(1ページに1つ)</td></tr><tr><td><code><article></code></td><td>独立したコンテンツ(記事・投稿)</td></tr><tr><td><code><section></code></td><td>テーマでまとまったセクション</td></tr><tr><td><code><aside></code></td><td>補足情報・サイドバー</td></tr><tr><td><code><footer></code></td><td>ページ下部(コピーライト・サイトマップ)</td></tr></tbody></table></figure> <p class="wp-block-paragraph">これらのタグの中で使う見出しや段落、リンクなどの個別タグは、<a href="https://awcs.org/learning/html/html-tag-list/" target="_blank" rel="noopener noreferrer">HTMLタグ一覧</a> にまとめています。</p> <div class="cc-ad" style="min-height:280px;margin:2.2em 0;text-align:center;overflow:hidden;"><ins class="adsbygoogle" style="display:block;text-align:center;" data-ad-client="ca-pub-1296595038663921" data-ad-slot="3999688822" data-ad-format="fluid" data-ad-layout="in-article"></ins><script>(adsbygoogle=window.adsbygoogle||[]).push({});</script></div><h2 class="wp-block-heading">コピペで使える基本構造テンプレート</h2> <p class="wp-block-paragraph">ここまでの要素をまとめた、実用テンプレートです。コピーしてそのまま使えます。</p> <p class="wp-block-paragraph"><pre><code><!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="description" content="ここにページの説明文を書く(80〜90文字)"> <title>ページタイトル | サイト名</title> <link rel="stylesheet" href="style.css"> </head> <body></p> <p class="wp-block-paragraph"> <header> <div class="header-inner"> <a href="https://example.com/" class="logo">サイト名</a> <nav> <ul> <li><a href="https://example.com/about/">サービスについて</a></li> <li><a href="https://example.com/blog/">ブログ</a></li> <li><a href="https://example.com/contact/">お問い合わせ</a></li> </ul> </nav> </div> </header></p> <p class="wp-block-paragraph"> <main> <article> <h1>ページのメインタイトル</h1> <p>ここに本文を書きます。</p> </article> </main></p> <p class="wp-block-paragraph"> <footer> <p>&copy; 2026 サイト名. All rights reserved.</p> </footer></p> <p class="wp-block-paragraph"></body> </html> </code></pre></p> <p class="wp-block-paragraph">リンクの書き方を詳しく知りたい場合は <a href="https://awcs.org/learning/html/a-tag/" target="_blank" rel="noopener noreferrer">aタグの使い方</a>、表組みは <a href="https://awcs.org/learning/html/table-tag/" target="_blank" rel="noopener noreferrer">tableタグの書き方</a> を参考にしてください。</p> <h2 class="wp-block-heading">よくある構造の間違いと直し方</h2> <p class="wp-block-paragraph">最後に、初学者がつまずきやすい構造ミスを2つ紹介します。</p> <h3 class="wp-block-heading">bodyの外にコンテンツを書く</h3> <p class="wp-block-paragraph"><code><body></code> の外に書いた内容は、正しく扱われません。表示されるべき中身は、必ずbody内に入れます。</p> <p class="wp-block-paragraph"><pre><code><!-- × --> <html> <head>...</head> <body>...</body> <p>これはbodyの外</p> <!-- 無効 --> </html></p> <p class="wp-block-paragraph"><!-- 〇 --> <body> <p>コンテンツはすべてbody内に</p> </body> </code></pre></p> <h3 class="wp-block-heading">headとbodyを入れ子にする</h3> <p class="wp-block-paragraph">headとbodyは<strong>並列</strong>の関係です。一方をもう一方の中に入れてはいけません。</p> <p class="wp-block-paragraph"><pre><code><!-- × --> <head> <body>...</body> <!-- bodyをheadの中に入れるのはNG --> </head></p> <p class="wp-block-paragraph"><!-- 〇 headとbodyは並列 --> <html> <head>...</head> <body>...</body> </html> </code></pre></p> <div class="cc-ad" style="min-height:280px;margin:2.2em 0;text-align:center;overflow:hidden;"><ins class="adsbygoogle" style="display:block;text-align:center;" data-ad-client="ca-pub-1296595038663921" data-ad-slot="3999688822" data-ad-format="fluid" data-ad-layout="in-article"></ins><script>(adsbygoogle=window.adsbygoogle||[]).push({});</script></div><h2 class="wp-block-heading">よくある質問</h2> <p class="wp-block-paragraph">HTMLの基本構造について、初学者からよく受ける質問をまとめました。</p> <p class="wp-block-paragraph"><div class="qa-card"></p> <h3 class="wp-block-heading">Q1. DOCTYPE宣言は省略しても表示されますか</h3> <p class="wp-block-paragraph">省略しても画面には表示されます。ただしブラウザが互換モードで動くため、CSSのレイアウトが意図どおりに出ない不具合が起きやすくなります。1行目に必ず書く前提で覚えておきましょう。</p> <p class="wp-block-paragraph"></div></p> <p class="wp-block-paragraph"><div class="qa-card"></p> <h3 class="wp-block-heading">Q2. lang属性を書かないとどうなりますか</h3> <p class="wp-block-paragraph">エラーにはなりません。ただし読み上げツールの言語判定や、ブラウザ翻訳・検索エンジンの言語認識が不正確になりやすくなります。日本語サイトなら <code>lang="ja"</code> を設定しておくのが無難です。</p> <p class="wp-block-paragraph"></div></p> <p class="wp-block-paragraph"><div class="qa-card"></p> <h3 class="wp-block-heading">Q3. headとbodyの違いがわかりません</h3> <p class="wp-block-paragraph">シンプルに「画面に出るか出ないか」で分けると整理できます。headはブラウザ向けの情報(文字コード・タイトル・CSS読み込み)で画面に出ません。bodyはユーザーに見せる中身で、ここだけが画面に表示されます。</p> <p class="wp-block-paragraph"></div></p> <p class="wp-block-paragraph"><div class="qa-card"></p> <h3 class="wp-block-heading">Q4. charsetはUTF-8以外でもいいですか</h3> <p class="wp-block-paragraph">特別な事情がなければ <code>UTF-8</code> を使います。日本語を含む多言語を正しく扱え、現在のWeb標準として広く採用されています。古い文字コードを指定すると文字化けの原因になります。</p> <p class="wp-block-paragraph"></div></p> <p class="wp-block-paragraph"><div class="qa-card"></p> <h3 class="wp-block-heading">Q5. 次は何を学べばいいですか</h3> <p class="wp-block-paragraph">基本構造を覚えたら、body内で使う個別タグの使い方に進むのがおすすめです。<a href="https://awcs.org/learning/html/html-tag-list/" target="_blank" rel="noopener noreferrer">HTMLタグ一覧</a> でよく使うタグを把握し、<a href="https://awcs.org/learning/html/what-is-css/" target="_blank" rel="noopener noreferrer">CSSとは</a> で見た目の付け方を学ぶと、ページを形にできるようになります。</p> <p class="wp-block-paragraph"></div></p> <h2 class="wp-block-heading">まとめ</h2> <p class="wp-block-paragraph">HTMLの基本構造は、次の4要素で成り立っています。</p> <p class="wp-block-paragraph"><div class="summary-box"> <strong>この記事のまとめ</strong> <ul class="box-list"> <li><code><!DOCTYPE html></code>:HTML5文書の宣言。1行目に必須</li> <li><code><html lang="ja"></code>:文書全体のルート・言語指定</li> <li><code><head></code>:ブラウザ向けのメタ情報(title・charset・viewport・CSS)。画面に出ない</li> <li><code><body></code>:画面に表示されるすべてのコンテンツ</li> <li>headとbodyは<strong>並列</strong>。入れ子にしない</li> </ul> </div></p> <p class="wp-block-paragraph">この骨組みを覚えたら、次は各タグの具体的な使い方を <a href="https://awcs.org/learning/html/html-tag-list/" target="_blank" rel="noopener noreferrer">HTMLタグ一覧</a> で確認してみましょう。あわせて <a href="https://awcs.org/learning/html/a-tag/" target="_blank" rel="noopener noreferrer">aタグ</a>・<a href="https://awcs.org/learning/html/table-tag/" target="_blank" rel="noopener noreferrer">tableタグ</a>・<a href="https://awcs.org/learning/html/img-tag/" target="_blank" rel="noopener noreferrer">imgタグ</a> といった頻出タグを押さえると、実際にページを組み立てられるようになります。</p> <hr class="wp-block-separator has-alpha-channel-opacity"/> <div class="sec-heading">関連記事</div> <ul class="wp-block-list"><li><a href="https://awcs.org/learning/html/what-is-html/" target="_blank" rel="noopener noreferrer">HTMLとは?初心者向けにわかりやすく解説</a></li><li><a href="https://awcs.org/learning/html/html-tag-list/" target="_blank" rel="noopener noreferrer">HTMLタグ一覧【完全版】</a></li><li><a href="https://awcs.org/learning/css/what-is-css/" target="_blank" rel="noopener noreferrer">CSSとは?書き方の基本・HTMLとの違い</a></li><li><a href="https://awcs.org/learning/html/display/" target="_blank" rel="noopener noreferrer">HTMLがブラウザに表示される仕組み</a></li></ul> <hr class="wp-block-separator has-alpha-channel-opacity"/> <p class="wp-block-paragraph"><strong>免責事項</strong></p> <p class="wp-block-paragraph"><div class="disclaimer-box"> <p>※本記事はWeb制作・HTMLに関する公開情報をもとにした整理です。仕様は更新される場合があるため、最新の挙動はMDN Web DocsやW3Cの公式ドキュメントをあわせてご確認ください。</p> </div></p> <hr class="wp-block-separator has-alpha-channel-opacity"/> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Article", "mainEntityOfPage": { "@type": "WebPage", "@id": "https://awcs.org/learning/html/basic-structure/" }, "headline": "HTMLの基本構造を徹底解説|DOCTYPE・html・head・bodyの役割", "description": "HTMLの基本構造であるDOCTYPE・html・head・bodyの4要素の役割を初心者向けに解説。lang属性やcharset、セマンティックタグの使い分け、コピペで使えるテンプレート、よくある構造ミスの直し方まで整理。", "author": { "@type": "Person", "name": "Sato", "url": "https://awcs.org/profile/" }, "publisher": { "@type": "Organization", "name": "WEB制作ノート", "url": "https://awcs.org/", "logo": { "@type": "ImageObject", "url": "https://awcs.org/wp-content/uploads/2026/01/awcs-logo.png" } }, "datePublished": "2026-05-14T09:00:00+09:00", "dateModified": "2026-06-19T09:00:00+09:00", "articleSection": "html", "keywords": "HTML 基本構造, DOCTYPE, head, body, lang属性", "inLanguage": "ja-JP" } </script> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "ホーム", "item": "https://awcs.org/" }, { "@type": "ListItem", "position": 2, "name": "HTML", "item": "https://awcs.org/category/html/" }, { "@type": "ListItem", "position": 3, "name": "HTMLの基本構造を徹底解説|DOCTYPE・html・head・bodyの役割", "item": "https://awcs.org/learning/html/basic-structure/" } ] } </script> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [ { "@type": "Question", "name": "DOCTYPE宣言は省略しても表示されますか", "acceptedAnswer": { "@type": "Answer", "text": "省略しても画面には表示されます。ただしブラウザが互換モードで動くため、CSSのレイアウトが意図どおりに出ない不具合が起きやすくなります。1行目に必ず書く前提で覚えておきましょう。" } }, { "@type": "Question", "name": "lang属性を書かないとどうなりますか", "acceptedAnswer": { "@type": "Answer", "text": "エラーにはなりません。ただし読み上げツールの言語判定や、ブラウザ翻訳・検索エンジンの言語認識が不正確になりやすくなります。日本語サイトならlang=jaを設定しておくのが無難です。" } }, { "@type": "Question", "name": "headとbodyの違いがわかりません", "acceptedAnswer": { "@type": "Answer", "text": "画面に出るか出ないかで分けると整理できます。headはブラウザ向けの情報(文字コード・タイトル・CSS読み込み)で画面に出ません。bodyはユーザーに見せる中身で、ここだけが画面に表示されます。" } }, { "@type": "Question", "name": "charsetはUTF-8以外でもいいですか", "acceptedAnswer": { "@type": "Answer", "text": "特別な事情がなければUTF-8を使います。日本語を含む多言語を正しく扱え、現在のWeb標準として広く採用されています。古い文字コードを指定すると文字化けの原因になります。" } }, { "@type": "Question", "name": "次は何を学べばいいですか", "acceptedAnswer": { "@type": "Answer", "text": "基本構造を覚えたら、body内で使う個別タグの使い方に進むのがおすすめです。HTMLタグ一覧でよく使うタグを把握し、CSSの基本で見た目の付け方を学ぶと、ページを形にできるようになります。" } } ] } </script> </div> <div class="p-articleFoot"> <div class="p-articleMetas -bottom"> <div class="p-articleMetas__termList c-categoryList"> <a class="c-categoryList__link hov-flash-up" href="https://awcs.org/./learning/html/" data-cat-id="5"> HTML </a> </div> </div> </div> <div class="c-shareBtns -bottom -style-btn-small"> <div class="c-shareBtns__message"> <span class="__text"> よかったらシェアしてね! </span> </div> <ul class="c-shareBtns__list"> <li class="c-shareBtns__item -facebook"> <a class="c-shareBtns__btn hov-flash-up" href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fawcs.org%2Flearning%2Fhtml%2Fbasic-structure%2F" title="Facebookでシェア" onclick="javascript:window.open(this.href, '_blank', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=800,width=600');return false;" target="_blank" role="button" tabindex="0"> <i class="snsicon c-shareBtns__icon icon-facebook" aria-hidden="true"></i> </a> </li> <li class="c-shareBtns__item -twitter-x"> <a class="c-shareBtns__btn hov-flash-up" href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fawcs.org%2Flearning%2Fhtml%2Fbasic-structure%2F&text=HTML%E3%81%AE%E5%9F%BA%E6%9C%AC%E6%A7%8B%E9%80%A0%E3%82%92%E5%BE%B9%E5%BA%95%E8%A7%A3%E8%AA%AC%EF%BD%9CDOCTYPE%E3%83%BBhtml%E3%83%BBhead%E3%83%BBbody%E3%81%AE%E5%BD%B9%E5%89%B2" title="X(Twitter)でシェア" onclick="javascript:window.open(this.href, '_blank', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=400,width=600');return false;" target="_blank" role="button" tabindex="0"> <i class="snsicon c-shareBtns__icon icon-twitter-x" aria-hidden="true"></i> </a> </li> <li class="c-shareBtns__item -hatebu"> <a class="c-shareBtns__btn hov-flash-up" href="//b.hatena.ne.jp/add?mode=confirm&url=https%3A%2F%2Fawcs.org%2Flearning%2Fhtml%2Fbasic-structure%2F" title="はてなブックマークに登録" onclick="javascript:window.open(this.href, '_blank', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=600,width=1000');return false;" target="_blank" role="button" tabindex="0"> <i class="snsicon c-shareBtns__icon icon-hatebu" aria-hidden="true"></i> </a> </li> <li class="c-shareBtns__item -pocket"> <a class="c-shareBtns__btn hov-flash-up" href="https://getpocket.com/edit?url=https%3A%2F%2Fawcs.org%2Flearning%2Fhtml%2Fbasic-structure%2F&title=HTML%E3%81%AE%E5%9F%BA%E6%9C%AC%E6%A7%8B%E9%80%A0%E3%82%92%E5%BE%B9%E5%BA%95%E8%A7%A3%E8%AA%AC%EF%BD%9CDOCTYPE%E3%83%BBhtml%E3%83%BBhead%E3%83%BBbody%E3%81%AE%E5%BD%B9%E5%89%B2" title="Pocketに保存" target="_blank" role="button" tabindex="0"> <i class="snsicon c-shareBtns__icon icon-pocket" aria-hidden="true"></i> </a> </li> <li class="c-shareBtns__item -line"> <a class="c-shareBtns__btn hov-flash-up" href="https://social-plugins.line.me/lineit/share?url=https%3A%2F%2Fawcs.org%2Flearning%2Fhtml%2Fbasic-structure%2F&text=HTML%E3%81%AE%E5%9F%BA%E6%9C%AC%E6%A7%8B%E9%80%A0%E3%82%92%E5%BE%B9%E5%BA%95%E8%A7%A3%E8%AA%AC%EF%BD%9CDOCTYPE%E3%83%BBhtml%E3%83%BBhead%E3%83%BBbody%E3%81%AE%E5%BD%B9%E5%89%B2" title="LINEに送る" target="_blank" role="button" tabindex="0"> <i class="snsicon c-shareBtns__icon icon-line" aria-hidden="true"></i> </a> </li> <li class="c-shareBtns__item -copy"> <button class="c-urlcopy c-plainBtn c-shareBtns__btn hov-flash-up" data-clipboard-text="https://awcs.org/learning/html/basic-structure/" title="URLをコピーする"> <span class="c-urlcopy__content"> <svg xmlns="http://www.w3.org/2000/svg" class="swl-svg-copy c-shareBtns__icon -to-copy" width="1em" height="1em" viewBox="0 0 48 48" role="img" aria-hidden="true" focusable="false"><path d="M38,5.5h-9c0-2.8-2.2-5-5-5s-5,2.2-5,5h-9c-2.2,0-4,1.8-4,4v33c0,2.2,1.8,4,4,4h28c2.2,0,4-1.8,4-4v-33 C42,7.3,40.2,5.5,38,5.5z M24,3.5c1.1,0,2,0.9,2,2s-0.9,2-2,2s-2-0.9-2-2S22.9,3.5,24,3.5z M38,42.5H10v-33h5v3c0,0.6,0.4,1,1,1h16 c0.6,0,1-0.4,1-1v-3h5L38,42.5z"/><polygon points="24,37 32.5,28 27.5,28 27.5,20 20.5,20 20.5,28 15.5,28 "/></svg> <svg xmlns="http://www.w3.org/2000/svg" class="swl-svg-copied c-shareBtns__icon -copied" width="1em" height="1em" viewBox="0 0 48 48" role="img" aria-hidden="true" focusable="false"><path d="M38,5.5h-9c0-2.8-2.2-5-5-5s-5,2.2-5,5h-9c-2.2,0-4,1.8-4,4v33c0,2.2,1.8,4,4,4h28c2.2,0,4-1.8,4-4v-33 C42,7.3,40.2,5.5,38,5.5z M24,3.5c1.1,0,2,0.9,2,2s-0.9,2-2,2s-2-0.9-2-2S22.9,3.5,24,3.5z M38,42.5H10v-33h5v3c0,0.6,0.4,1,1,1h16 c0.6,0,1-0.4,1-1v-3h5V42.5z"/><polygon points="31.9,20.2 22.1,30.1 17.1,25.1 14.2,28 22.1,35.8 34.8,23.1 "/></svg> </span> </button> <div class="c-copyedPoppup">URLをコピーしました!</div> </li> </ul> </div> <div id="after_article" class="l-articleBottom"> <ul class="p-pnLinks -style-normal"> <li class="p-pnLinks__item -next"> <a href="https://awcs.org/learning/html/basis/" rel="next" class="p-pnLinks__link"> <span class="p-pnLinks__title">HTML入門|はじめてのHTML・基本の書き方と学習ロードマップ</span> </a> </li> </ul> <section class="l-articleBottom__section -author"> <h2 class="l-articleBottom__title c-secTitle"> この記事を書いた人 </h2> <div class="p-authorBox"> <div class="p-authorBox__l"> <img alt='Satoのアバター' src='https://awcs.org/wp-content/uploads/2026/09/author-photo-awcs.org-96ab5f0f.png' srcset='https://awcs.org/wp-content/uploads/2026/09/author-photo-awcs.org-96ab5f0f.png 2x' class='avatar avatar-100 photo' height='100' width='100' loading='lazy' decoding='async'/> <a href="https://awcs.org/author/sato/" class="p-authorBox__name hov-col-main u-fz-m"> Sato </a> </div> <div class="p-authorBox__r"> <p class="p-authorBox__desc u-thin"> 制作会社でWebディレクターとして10年、コーポレートサイトやECサイト、キャンペーンページの案件を担当してきたSatoです。企画や設計だけでなく、デザインの方向を決め、進行を管理し、公開したあとの改善まで手を動かしてきました。<br /> <br /> 10年やって思うのは、Webサイトは公開した日がゴールではないということです。むしろそこがスタートで、数字を見ながら直していく時間の方がずっと長い。きれいに作っても問い合わせが増えなければ意味がなく、逆に地味でも導線を整えるだけで反応が変わることも何度もありました。<br /> <br /> このサイトでは、制作で実際に効いた考え方や、逆にやりがちな失敗を、できるだけ具体的に書いていきます。 </p> </div> </div> </section> <section class="l-articleBottom__section -related"> <h2 class="l-articleBottom__title c-secTitle">関連記事</h2><ul class="p-postList p-relatedPosts -type-card"><li class="p-postList__item"> <a href="https://awcs.org/learning/html/table-tag/" class="p-postList__link"> <div class="p-postList__thumb c-postThumb"> <figure class="c-postThumb__figure"> <img width="300" height="158" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="" class="c-postThumb__img u-obf-cover lazyload" sizes="(min-width: 600px) 320px, 50vw" data-src="https://awcs.org/wp-content/uploads/2026/08/awcs-org_table-tag-1-300x158.jpg" data-srcset="https://awcs.org/wp-content/uploads/2026/08/awcs-org_table-tag-1-300x158.jpg 300w, https://awcs.org/wp-content/uploads/2026/08/awcs-org_table-tag-1-1024x538.jpg 1024w, https://awcs.org/wp-content/uploads/2026/08/awcs-org_table-tag-1-768x403.jpg 768w, https://awcs.org/wp-content/uploads/2026/08/awcs-org_table-tag-1.jpg 1200w" data-aspectratio="300/158" ><noscript><img src="https://awcs.org/wp-content/uploads/2026/08/awcs-org_table-tag-1-300x158.jpg" class="c-postThumb__img u-obf-cover" alt=""></noscript> </figure> </div> <div class="p-postList__body"> <div class="p-postList__title">tableタグの書き方|HTMLテーブル(表)の作り方を基礎から解説</div> <div class="p-postList__meta"><div class="p-postList__times c-postTimes u-thin"> <time class="c-postTimes__posted icon-posted" datetime="2026-05-18" aria-label="公開日">2026年5月18日</time></div> </div> </div> </a> </li> <li class="p-postList__item"> <a href="https://awcs.org/learning/html/html-line-break/" class="p-postList__link"> <div class="p-postList__thumb c-postThumb"> <figure class="c-postThumb__figure"> <img width="300" height="158" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="" class="c-postThumb__img u-obf-cover lazyload" sizes="(min-width: 600px) 320px, 50vw" data-src="https://awcs.org/wp-content/uploads/2026/08/awcs-org_html-line-break-1-300x158.jpg" data-srcset="https://awcs.org/wp-content/uploads/2026/08/awcs-org_html-line-break-1-300x158.jpg 300w, https://awcs.org/wp-content/uploads/2026/08/awcs-org_html-line-break-1-1024x538.jpg 1024w, https://awcs.org/wp-content/uploads/2026/08/awcs-org_html-line-break-1-768x403.jpg 768w, https://awcs.org/wp-content/uploads/2026/08/awcs-org_html-line-break-1.jpg 1200w" data-aspectratio="300/158" ><noscript><img src="https://awcs.org/wp-content/uploads/2026/08/awcs-org_html-line-break-1-300x158.jpg" class="c-postThumb__img u-obf-cover" alt=""></noscript> </figure> </div> <div class="p-postList__body"> <div class="p-postList__title">HTMLの改行方法|brタグとpタグの違い・正しい使い分けを解説</div> <div class="p-postList__meta"><div class="p-postList__times c-postTimes u-thin"> <time class="c-postTimes__posted icon-posted" datetime="2026-05-17" aria-label="公開日">2026年5月17日</time></div> </div> </div> </a> </li> <li class="p-postList__item"> <a href="https://awcs.org/learning/html/img-tag/" class="p-postList__link"> <div class="p-postList__thumb c-postThumb"> <figure class="c-postThumb__figure"> <img width="300" height="158" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="" class="c-postThumb__img u-obf-cover lazyload" sizes="(min-width: 600px) 320px, 50vw" data-src="https://awcs.org/wp-content/uploads/2026/08/awcs-org_img-tag-1-300x158.jpg" data-srcset="https://awcs.org/wp-content/uploads/2026/08/awcs-org_img-tag-1-300x158.jpg 300w, https://awcs.org/wp-content/uploads/2026/08/awcs-org_img-tag-1-1024x538.jpg 1024w, https://awcs.org/wp-content/uploads/2026/08/awcs-org_img-tag-1-768x403.jpg 768w, https://awcs.org/wp-content/uploads/2026/08/awcs-org_img-tag-1.jpg 1200w" data-aspectratio="300/158" ><noscript><img src="https://awcs.org/wp-content/uploads/2026/08/awcs-org_img-tag-1-300x158.jpg" class="c-postThumb__img u-obf-cover" alt=""></noscript> </figure> </div> <div class="p-postList__body"> <div class="p-postList__title">imgタグの使い方|HTML画像表示の書き方・alt属性・レスポンシブ対応</div> <div class="p-postList__meta"><div class="p-postList__times c-postTimes u-thin"> <time class="c-postTimes__posted icon-posted" datetime="2026-05-16" aria-label="公開日">2026年5月16日</time></div> </div> </div> </a> </li> <li class="p-postList__item"> <a href="https://awcs.org/learning/html/a-tag/" class="p-postList__link"> <div class="p-postList__thumb c-postThumb"> <figure class="c-postThumb__figure"> <img width="300" height="158" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="" class="c-postThumb__img u-obf-cover lazyload" sizes="(min-width: 600px) 320px, 50vw" data-src="https://awcs.org/wp-content/uploads/2026/08/awcs-org_a-tag-1-300x158.jpg" data-srcset="https://awcs.org/wp-content/uploads/2026/08/awcs-org_a-tag-1-300x158.jpg 300w, https://awcs.org/wp-content/uploads/2026/08/awcs-org_a-tag-1-1024x538.jpg 1024w, https://awcs.org/wp-content/uploads/2026/08/awcs-org_a-tag-1-768x403.jpg 768w, https://awcs.org/wp-content/uploads/2026/08/awcs-org_a-tag-1.jpg 1200w" data-aspectratio="300/158" ><noscript><img src="https://awcs.org/wp-content/uploads/2026/08/awcs-org_a-tag-1-300x158.jpg" class="c-postThumb__img u-obf-cover" alt=""></noscript> </figure> </div> <div class="p-postList__body"> <div class="p-postList__title">aタグの使い方|リンクの書き方・target属性・rel属性を徹底解説</div> <div class="p-postList__meta"><div class="p-postList__times c-postTimes u-thin"> <time class="c-postTimes__posted icon-posted" datetime="2026-05-13" aria-label="公開日">2026年5月13日</time></div> </div> </div> </a> </li> <li class="p-postList__item"> <a href="https://awcs.org/learning/html/html-tag-list/" class="p-postList__link"> <div class="p-postList__thumb c-postThumb"> <figure class="c-postThumb__figure"> <img width="300" height="158" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="HTMLタグ一覧使い方リファレンス" class="c-postThumb__img u-obf-cover lazyload" sizes="(min-width: 600px) 320px, 50vw" data-src="https://awcs.org/wp-content/uploads/2026/10/awcs_69-300x158.jpg" data-srcset="https://awcs.org/wp-content/uploads/2026/10/awcs_69-300x158.jpg 300w, https://awcs.org/wp-content/uploads/2026/10/awcs_69-1024x538.jpg 1024w, https://awcs.org/wp-content/uploads/2026/10/awcs_69-768x403.jpg 768w, https://awcs.org/wp-content/uploads/2026/10/awcs_69.jpg 1200w" data-aspectratio="300/158" ><noscript><img src="https://awcs.org/wp-content/uploads/2026/10/awcs_69-300x158.jpg" class="c-postThumb__img u-obf-cover" alt=""></noscript> </figure> </div> <div class="p-postList__body"> <div class="p-postList__title">HTMLタグ一覧【全タグ解説・コピペで使えるリファレンス完全版】</div> <div class="p-postList__meta"><div class="p-postList__times c-postTimes u-thin"> <time class="c-postTimes__posted icon-posted" datetime="2026-05-06" aria-label="公開日">2026年5月6日</time></div> </div> </div> </a> </li> <li class="p-postList__item"> <a href="https://awcs.org/learning/html/what-is-html/" class="p-postList__link"> <div class="p-postList__thumb c-postThumb"> <figure class="c-postThumb__figure"> <img width="300" height="158" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="HTMLとは?基本構造と書き方" class="c-postThumb__img u-obf-cover lazyload" sizes="(min-width: 600px) 320px, 50vw" data-src="https://awcs.org/wp-content/uploads/2026/10/awcs_73-300x158.jpg" data-srcset="https://awcs.org/wp-content/uploads/2026/10/awcs_73-300x158.jpg 300w, https://awcs.org/wp-content/uploads/2026/10/awcs_73-1024x538.jpg 1024w, https://awcs.org/wp-content/uploads/2026/10/awcs_73-768x403.jpg 768w, https://awcs.org/wp-content/uploads/2026/10/awcs_73.jpg 1200w" data-aspectratio="300/158" ><noscript><img src="https://awcs.org/wp-content/uploads/2026/10/awcs_73-300x158.jpg" class="c-postThumb__img u-obf-cover" alt=""></noscript> </figure> </div> <div class="p-postList__body"> <div class="p-postList__title">HTMLとは?初心者向けにわかりやすく解説【基本構造・書き方】</div> <div class="p-postList__meta"><div class="p-postList__times c-postTimes u-thin"> <time class="c-postTimes__posted icon-posted" datetime="2026-05-04" aria-label="公開日">2026年5月4日</time></div> </div> </div> </a> </li> <li class="p-postList__item"> <a href="https://awcs.org/learning/html/display/" class="p-postList__link"> <div class="p-postList__thumb c-postThumb"> <figure class="c-postThumb__figure"> <img width="300" height="158" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="HTML表示の仕組みDNS・HTTP・描画" class="c-postThumb__img u-obf-cover lazyload" sizes="(min-width: 600px) 320px, 50vw" data-src="https://awcs.org/wp-content/uploads/2026/10/awcs_46-300x158.jpg" data-srcset="https://awcs.org/wp-content/uploads/2026/10/awcs_46-300x158.jpg 300w, https://awcs.org/wp-content/uploads/2026/10/awcs_46-1024x538.jpg 1024w, https://awcs.org/wp-content/uploads/2026/10/awcs_46-768x403.jpg 768w, https://awcs.org/wp-content/uploads/2026/10/awcs_46.jpg 1200w" data-aspectratio="300/158" ><noscript><img src="https://awcs.org/wp-content/uploads/2026/10/awcs_46-300x158.jpg" class="c-postThumb__img u-obf-cover" alt=""></noscript> </figure> </div> <div class="p-postList__body"> <div class="p-postList__title">HTMLがブラウザに表示される仕組み|DNS・HTTPリクエスト・レンダリングを解説</div> <div class="p-postList__meta"><div class="p-postList__times c-postTimes u-thin"> <time class="c-postTimes__posted icon-posted" datetime="2025-08-14" aria-label="公開日">2025年8月14日</time></div> </div> </div> </a> </li> <li class="p-postList__item"> <a href="https://awcs.org/learning/html/list/" class="p-postList__link"> <div class="p-postList__thumb c-postThumb"> <figure class="c-postThumb__figure"> <img width="300" height="158" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="HTMLタグ一覧基本から応用まで" class="c-postThumb__img u-obf-cover lazyload" sizes="(min-width: 600px) 320px, 50vw" data-src="https://awcs.org/wp-content/uploads/2026/10/awcs_29-300x158.jpg" data-srcset="https://awcs.org/wp-content/uploads/2026/10/awcs_29-300x158.jpg 300w, https://awcs.org/wp-content/uploads/2026/10/awcs_29-1024x538.jpg 1024w, https://awcs.org/wp-content/uploads/2026/10/awcs_29-768x403.jpg 768w, https://awcs.org/wp-content/uploads/2026/10/awcs_29.jpg 1200w" data-aspectratio="300/158" ><noscript><img src="https://awcs.org/wp-content/uploads/2026/10/awcs_29-300x158.jpg" class="c-postThumb__img u-obf-cover" alt=""></noscript> </figure> </div> <div class="p-postList__body"> <div class="p-postList__title">HTMLタグ一覧【完全版】基本から応用タグをカテゴリ別に解説</div> <div class="p-postList__meta"><div class="p-postList__times c-postTimes u-thin"> <time class="c-postTimes__posted icon-posted" datetime="2025-08-14" aria-label="公開日">2025年8月14日</time></div> </div> </div> </a> </li> </ul></section> </div> </article> </main> </div> <footer id="footer" class="l-footer"> <div class="l-footer__inner"> <div class="l-footer__foot"> <div class="l-container"> <ul class="l-footer__nav"><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-859"><a href="https://awcs.org/profile/">運営者プロフィール</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-860"><a href="https://awcs.org/contact/">お問い合わせ</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1264"><a href="https://awcs.org/privacy/">プライバシーポリシー</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-1293"><a href="https://awcs.org/./web-design/">Webデザイン</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor current-menu-parent current-post-parent menu-item-1294"><a href="https://awcs.org/./learning/html/">HTML</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-1295"><a href="https://awcs.org/./cms/">CMS・ノーコード</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-1296"><a href="https://awcs.org/./web-direction/">Webディレクション</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-1297"><a href="https://awcs.org/./seo/tools/">SEOツール</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-1298"><a href="https://awcs.org/./marketing/">マーケティング</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-1299"><a href="https://awcs.org/./freelance/">フリーランス・案件獲得</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-1300"><a href="https://awcs.org/./blog/">Blog</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-1301"><a href="https://awcs.org/./school/">スクール・教材</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-1302"><a href="https://awcs.org/./server/">サーバー・ドメイン</a></li> </ul> <p class="copyright"> <span lang="en">©</span> WEB制作ノート. </p> </div> </div> </div> </footer> <div class="p-fixBtnWrap"> <button id="pagetop" class="c-fixBtn c-plainBtn hov-bg-main" data-onclick="pageTop" aria-label="ページトップボタン" data-has-text=""> <i class="c-fixBtn__icon icon-chevron-up" role="presentation"></i> </button> </div> <div id="search_modal" class="c-modal p-searchModal"> <div class="c-overlay" data-onclick="toggleSearch"></div> <div class="p-searchModal__inner"> <form role="search" method="get" class="c-searchForm" action="https://awcs.org/" role="search"> <input type="text" value="" name="s" class="c-searchForm__s s" placeholder="検索" aria-label="検索ワード"> <button type="submit" class="c-searchForm__submit icon-search hov-opacity u-bg-main" value="search" aria-label="検索を実行する"></button> </form> <button class="c-modal__close c-plainBtn" data-onclick="toggleSearch"> <i class="icon-batsu"></i> 閉じる </button> </div> </div> <div id="index_modal" class="c-modal p-indexModal"> <div class="c-overlay" data-onclick="toggleIndex"></div> <div class="p-indexModal__inner"> <div class="p-toc post_content -modal"><span class="p-toc__ttl">目次</span></div> <button class="c-modal__close c-plainBtn" data-onclick="toggleIndex"> <i class="icon-batsu"></i> 閉じる </button> </div> </div> </div> <div class="l-scrollObserver" aria-hidden="true"></div><script type="speculationrules"> {"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/swell_child/*","/wp-content/themes/swell/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} </script> <script id="swell_script-js-extra"> var swellVars = {"siteUrl":"https://awcs.org/","restUrl":"https://awcs.org/wp-json/wp/v2/","ajaxUrl":"https://awcs.org/wp-admin/admin-ajax.php","ajaxNonce":"7493cc563f","isLoggedIn":"","useAjaxAfterPost":"","useAjaxFooter":"","usePvCount":"1","isFixHeadSP":"1","tocListTag":"ol","tocTarget":"h3","tocPrevText":"\u524d\u306e\u30da\u30fc\u30b8\u3078","tocNextText":"\u6b21\u306e\u30da\u30fc\u30b8\u3078","tocCloseText":"\u6298\u308a\u305f\u305f\u3080","tocOpenText":"\u3082\u3063\u3068\u898b\u308b","tocOmitType":"ct","tocOmitNum":"15","tocMinnum":"2","tocAdPosition":"before","offSmoothScroll":""}; </script> <script id="swell_script-js" src="https://awcs.org/wp-content/themes/swell/build/js/main.min.js?ver=2.16.0"></script> <script id="swell_lazysizes-js" src="https://awcs.org/wp-content/themes/swell/assets/js/plugins/lazysizes.min.js?ver=5.3.1"></script> <script id="swell_set_fix_header-js" src="https://awcs.org/wp-content/themes/swell/build/js/front/set_fix_header.min.js?ver=2.16.0"></script> <script id="clipboard-js" src="https://awcs.org/wp-includes/js/clipboard.min.js?ver=2.0.11"></script> <script id="swell_set_urlcopy-js" src="https://awcs.org/wp-content/themes/swell/build/js/front/set_urlcopy.min.js?ver=2.16.0"></script> <script id="cc-click-metrics"> (function(){ var EP = "https:\/\/awcs.org\/wp-json\/cc-click\/v1\/hit"; var PID = 41; var DEBUG = false; var ASP = [ ['a8','px.a8.net'],['moshimo','af.moshimo.com'],['afb','t.afi-b.com'], ['townlife','townlife-aff.com'],['rentracks','rentracks.jp'], ['valuecommerce','ck.jp.ap.valuecommerce.com'],['trafficgate','trafficgate.net'], ['accesstrade','accesstrade.net'],['linksynergy','click.linksynergy.com'], ['felmat','felmat.net'],['amazon','amzn.to'] ]; var AUTH = /\.(go|lg|ac|gr|or)\.jp$|\.gov$/; var DEV = (window.matchMedia && window.matchMedia('(max-width: 781px)').matches) ? 'mobile' : 'desktop'; var sent = {}; var DBG = {ver:'1.3.0', post_id:PID, device:DEV, endpoint:EP, handler_attached:false, links_in_scope:0, asp_links:[], classified:{}, would_send:[]}; function send(kind, o){ o = o || {}; if (DEBUG) { DBG.would_send.push({kind:kind, host:o.host||'', asp:o.asp||'', pos:o.pos||0, text:(o.text||'').slice(0,60)}); DBG.classified[kind] = (DBG.classified[kind]||0) + 1; if (window.__ccAspDebugRender) { window.__ccAspDebugRender(); } return; } var body = JSON.stringify({ kind: kind, post_id: PID, host: o.host || '', asp: o.asp || '', pos: o.pos || 0, device: DEV, text: (o.text || '').slice(0, 60) }); try { if (navigator.sendBeacon) { navigator.sendBeacon(EP, new Blob([body], {type:'application/json'})); } else { var x = new XMLHttpRequest(); x.open('POST', EP, true); x.setRequestHeader('Content-Type','application/json'); x.send(body); } } catch(e){} try { window.dataLayer = window.dataLayer || []; window.dataLayer.push({event:'cc_'+kind, cc_kind:kind, cc_post_id:PID, cc_host:o.host||'', cc_asp:o.asp||'', cc_pos:o.pos||0, cc_text:(o.text||'').slice(0,60)}); } catch(e){} } var links = [].slice.call(document.querySelectorAll('article a[href], .post_content a[href], main a[href]')); var idx = {}; document.addEventListener('click', function(ev){ var a = ev.target && ev.target.closest ? ev.target.closest('a[href]') : null; if (!a) { return; } if (!a.closest('.post_content, article, main')) { return; } var href = a.getAttribute('href') || ''; if (href.indexOf('#') === 0 || href.indexOf('mailto:') === 0 || href.indexOf('tel:') === 0) { return; } var host = ''; try { host = new URL(a.href, location.href).hostname; } catch(e){ return; } var kind = 'outbound_click', asp = ''; if (host === location.hostname) { kind = 'internal_click'; } else { for (var i=0;i<ASP.length;i++){ if (host.indexOf(ASP[i][1]) !== -1) { kind='asp_click'; asp=ASP[i][0]; break; } } if (!asp && AUTH.test(host)) { kind = 'citation_click'; } } if (DEBUG) { ev.preventDefault(); ev.stopPropagation(); } idx[kind] = (idx[kind] || 0) + 1; send(kind, {host: host, asp: asp, pos: (links.indexOf(a)+1) || idx[kind], text: (a.textContent||'').trim()}); }, true); DBG.handler_attached = true; if (window.IntersectionObserver) { var ctas = document.querySelectorAll('.cta-box, .cta-soft'); var io = new IntersectionObserver(function(es){ es.forEach(function(e){ if (!e.isIntersecting) { return; } var n = e.target.getAttribute('data-cc-pos') || 0; if (sent['cta'+n]) { return; } sent['cta'+n] = 1; send('cta_view', {pos: parseInt(n,10)||0}); io.unobserve(e.target); }); }, {threshold: 0.5}); for (var j=0;j<ctas.length;j++){ ctas[j].setAttribute('data-cc-pos', j+1); io.observe(ctas[j]); } } if (window.IntersectionObserver) { var av = []; for (var k=0;k<links.length;k++){ var hh = ''; try { hh = new URL(links[k].href, location.href).hostname; } catch(e){ continue; } for (var q=0;q<ASP.length;q++){ if (hh.indexOf(ASP[q][1]) !== -1) { av.push([links[k], ASP[q][0], hh]); break; } } } var io2 = new IntersectionObserver(function(es){ es.forEach(function(e){ if (!e.isIntersecting) { return; } var n = e.target.getAttribute('data-cc-avpos') || 0; if (sent['av'+n]) { return; } sent['av'+n] = 1; send('asp_view', {pos: parseInt(n,10)||0, asp: e.target.getAttribute('data-cc-asp') || '', host: e.target.getAttribute('data-cc-avhost') || ''}); io2.unobserve(e.target); }); }, {threshold: 0.5}); for (var k2=0;k2<av.length;k2++){ av[k2][0].setAttribute('data-cc-avpos', k2+1); av[k2][0].setAttribute('data-cc-asp', av[k2][1]); av[k2][0].setAttribute('data-cc-avhost', av[k2][2]); io2.observe(av[k2][0]); } window.__ccAspLinks = av.length; } var fired90 = false; var bodyEl = document.querySelector('.post_content') || document.querySelector('article') || document.querySelector('main'); function check90(){ if (fired90 || !bodyEl) { return; } var r = bodyEl.getBoundingClientRect(); var read = (window.innerHeight - r.top) / (r.height || 1); if (read >= 0.9) { fired90 = true; send('scroll_90', {}); } } window.addEventListener('scroll', check90, {passive:true}); window.addEventListener('load', check90); check90(); window.__ccClickReady = links.length; if (DEBUG) { DBG.links_in_scope = links.length; for (var d1=0; d1<links.length; d1++){ var dh=''; try { dh = new URL(links[d1].href, location.href).hostname; } catch(e){ continue; } if (dh === location.hostname) { continue; } var dasp=''; for (var d2=0; d2<ASP.length; d2++){ if (dh.indexOf(ASP[d2][1]) !== -1) { dasp=ASP[d2][0]; break; } } if (dasp) { DBG.asp_links.push({pos:d1+1, asp:dasp, host:dh, text:(links[d1].textContent||'').trim().slice(0,40)}); } } window.__ccAspDebug = DBG; var box = document.createElement('div'); box.setAttribute('style','position:fixed;left:8px;bottom:8px;z-index:2147483647;max-width:min(560px,94vw);' + 'max-height:62vh;overflow:auto;background:#101418;color:#e6edf3;font:12px/1.6 ui-monospace,Menlo,monospace;' + 'padding:12px 14px;border-radius:8px;box-shadow:0 6px 24px rgba(0,0,0,.45)'); window.__ccAspDebugRender = function(){ var h = '<b>cc_click_metrics 自己診断 v' + DBG.ver + '</b><br>' + 'このモードでは <b>何も送信しません</b>/リンクは遷移しません<br><hr style="border:0;border-top:1px solid #333">' + 'post_id: ' + DBG.post_id + ' device: ' + DBG.device + '<br>' + 'クリックハンドラ: ' + (DBG.handler_attached ? '<span style="color:#4ade80">付いている</span>' : '<span style="color:#f87171">付いていない</span>') + '<br>' + '本文内リンク総数: ' + DBG.links_in_scope + '<br>' + 'ASPリンクとして認識: <b>' + DBG.asp_links.length + '</b> 本<br>'; for (var i=0;i<DBG.asp_links.length && i<25;i++){ var L = DBG.asp_links[i]; h += ' #' + L.pos + ' [' + L.asp + '] ' + L.host + ' — ' + L.text + '<br>'; } h += '<hr style="border:0;border-top:1px solid #333">送信されるはずだったイベント:<br>'; var any=false; for (var k in DBG.classified){ any=true; h += ' ' + k + ': ' + DBG.classified[k] + '<br>'; } if (!any) { h += ' (まだ無し。ASPリンクを押すと、遷移せずにここへ出ます)<br>'; } h += '<span style="color:#94a3b8">window.__ccAspDebug にも同じ内容が入っています</span>'; box.innerHTML = h; }; window.__ccAspDebugRender(); (document.body || document.documentElement).appendChild(box); try { console.log('[cc_click_metrics] 自己診断', DBG); } catch(e){} } })(); </script> <script type="application/ld+json">{"@context": "https://schema.org","@graph": [{"@type":"Organization","@id":"https:\/\/awcs.org\/#organization","name":"WEB制作ノート","url":"https:\/\/awcs.org\/","logo":{"@type":"ImageObject","url":"https:\/\/awcs.org\/wp-content\/uploads\/2026\/01\/awcs-logo.png","width":850,"height":180}},{"@type":"WebSite","@id":"https:\/\/awcs.org\/#website","url":"https:\/\/awcs.org\/","name":"WEB制作ノート","description":"Webディレクター10年・300案件超の実務経験から、Webサイト制作費の相場・コーポレートサイトのリニューアル・WordPress\/SWELL選びを現場目線で解説。"},{"@type":"WebPage","@id":"https:\/\/awcs.org\/learning\/html\/basic-structure\/","url":"https:\/\/awcs.org\/learning\/html\/basic-structure\/","name":"HTMLの基本構造を徹底解説|DOCTYPE・html・head・bodyの役割","description":"HTMLの基本構造はDOCTYPE・html・head・bodyの4要素で成り立ちます。それぞれの役割と書く理由、lang属性やcharset・viewportの意味、header/main/article/footerの使い分けを解説し、コピーして使えるテンプレートも紹介します。 この記事でわかること HTMLの基本構造はDOCTYPE・html・head・bodyの4つで成り立つこと 4要素それぞれの役割と書く理由(互換モード回避・文字化け防止など) lang属性・charset・viewportなどheadに置く要素の意味 HTML5のセマンティックタグ(header/main/arti","isPartOf":{"@id":"https:\/\/awcs.org\/#website"}},{"@type":"Article","mainEntityOfPage":{"@type":"WebPage","@id":"https:\/\/awcs.org\/learning\/html\/basic-structure\/"},"headline":"HTMLの基本構造を徹底解説|DOCTYPE・html・head・bodyの役割","image":{"@type":"ImageObject","url":"https:\/\/awcs.org\/wp-content\/uploads\/2026\/10\/awcs_41.jpg"},"datePublished":"2025-07-10T14:28:00+0900","dateModified":"2026-08-27T22:10:46+0900","author":{"@type":"Person","@id":"https:\/\/awcs.org\/learning\/html\/basic-structure\/#author","name":"Sato","url":"https:\/\/awcs.org\/"},"publisher":{"@id":"https:\/\/awcs.org\/#organization"}},{"@type":"BreadcrumbList","@id":"https:\/\/awcs.org\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"https:\/\/awcs.org\/.\/learning\/","name":"Web制作基礎"}},{"@type":"ListItem","position":2,"item":{"@id":"https:\/\/awcs.org\/.\/learning\/html\/","name":"HTML"}}]}]}</script> <script> (function () { var tries = 0, MAX = 120; function sweep() { var boxes = document.querySelectorAll('.cc-ad, .google-auto-placed'), pending = 0; tries++; for (var i = 0; i < boxes.length; i++) { var box = boxes[i]; if (box.style.display === 'none') { continue; } var ins = box.querySelector('ins.adsbygoogle'); if (!ins) { continue; } var st = ins.getAttribute('data-ad-status'); if (st && st.indexOf('unfill') === 0) { box.style.display = 'none'; } else if (st !== 'filled') { pending++; } } if (pending && tries < MAX) { setTimeout(sweep, 500); } } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', function () { setTimeout(sweep, 500); }); } else { setTimeout(sweep, 500); } })(); </script> </body></html>