Vibe Code Lab
HTML・CSS・JavaScriptって何?── バイブコーダーのための最低限の知識
入門 Step 6 約27分で読めます

HTML・CSS・JavaScriptって何?── バイブコーダーのための最低限の知識

覚える必要はない。知っているだけでいい

バイブコーディングではコードを書く必要はない。でも「Web技術にはどんなものがあるか」をざっくり知っていると、AIへの指示の精度が格段に上がる

レストランのメニューを知らなくても食事はできるが、メニューを知っていれば的確に注文できる──そんなイメージだ。

この記事では、Webの3大言語であるHTML・CSS・JavaScriptの役割を「家を建てる」比喩でわかりやすく解説し、バイブコーディングに必要な最低限の知識を網羅する。コードを1行も書けなくても大丈夫。「こういうものがある」と知っているだけで、AIとのコミュニケーションが劇的に変わる

ℹ️

この記事のゴール

HTML・CSS・JavaScriptの基本を理解し、AIに「何を」「どう」伝えればいいかがわかるようになること。暗記は不要、辞書的に使ってほしい。


「家を建てる」で理解する3つの言語

Web技術を最もわかりやすく理解するには、家を建てることにたとえるとよい。

言語家にたとえると役割具体例
HTML骨組み・柱・壁構造(何を表示するか)見出し、段落、画像、リンク
CSS壁紙・家具・インテリア見た目(どう見せるか)色、サイズ、配置、アニメーション
JavaScript電気・水道・スマート家電動き(何をするか)ボタンクリック、データ取得、計算

家を建てるとき、まず柱や壁(HTML)がなければ家にならない。次にインテリア(CSS)で住みやすくする。さらに電気や水道(JavaScript)を通すことで、便利に暮らせるようになる。

Webサイトもまったく同じだ。HTMLで「ここに見出し」「ここに画像」と構造を作り、CSSで色やレイアウトを整え、JavaScriptでボタンや検索などのインタラクションを加える。

💡

バイブコーディングでの活用

AIに「Reactで家の間取り図みたいなレイアウトにして。壁紙(背景色)はベージュで、スマート家電(ボタンクリックでモーダル表示)もつけて」──こんな指示が出せるようになる。


HTML ── Webページの骨組み

HTMLとは何か

HTML(HyperText Markup Language)は、Webページの構造を定義する言語だ。「ここが見出し」「ここが段落」「ここに画像を置く」といった指示を、タグという記号で囲んで書く。

<h1>これは見出しです</h1>
<p>これは段落です</p>

<h1> が開始タグ、</h1> が終了タグ。この2つで囲まれた部分が「見出し」として認識される。

知っておくべきHTMLタグ一覧

バイブコーディングでAIに指示を出すとき、以下のタグの名前と意味を知っているだけで指示の精度が格段に上がる。

テキスト関連タグ

タグ意味使いどころAIへの指示例
<h1><h6>見出し(h1が最大)ページタイトル、セクション見出し「h1のフォントサイズを大きくして」
<p>段落本文テキスト「p要素の行間を広げて」
<span>インライン要素テキストの一部を装飾「この部分だけspanで色を変えて」
<strong>太字(重要)強調したいテキスト「重要な部分をstrongで囲んで」
<em>斜体(強調)補足的な強調「emで軽く強調して」

構造・レイアウト関連タグ

タグ意味使いどころAIへの指示例
<div>汎用ブロック要素レイアウトの箱「divで囲んでカード風にして」
<header>ヘッダー領域サイトの上部「headerにロゴとナビを入れて」
<footer>フッター領域サイトの下部「footerにコピーライトを入れて」
<nav>ナビゲーションメニュー部分「navにリンクを5つ並べて」
<section>セクションコンテンツのまとまり「sectionで区切って」
<main>メインコンテンツページの主要部分「mainの中に記事を配置して」

メディア・インタラクション関連タグ

タグ意味使いどころAIへの指示例
<a>リンク別ページへの移動「aタグで外部リンクを貼って」
<img>画像写真やイラスト表示「imgタグでロゴを表示して」
<ul> / <ol>リスト(箇条書き/番号付き)項目の列挙「ulで箇条書きにして」
<li>リスト項目リストの各要素「liを5つ並べて」
<table>テーブル表形式のデータ「tableで料金表を作って」
<form>フォーム入力欄のまとまり「formでお問い合わせを作って」
<input>入力欄テキスト入力、チェックボックス「inputでメールアドレス欄を追加」
<button>ボタンクリック操作「buttonで送信ボタンを作って」
💡

バイブコーディングでの活用ポイント

タグの名前を知っていると、AIへの指示が具体的になる。「いい感じにして」ではなく「headerにnavを入れて、mainの中にsectionを3つ作って」と言える。AIは具体的な指示ほど正確に応答する。

HTMLの基本構造

実際のHTMLファイルには「おまじない」的な構造がある。書けなくてもよいが、見たときに「あ、これがHTMLの全体構造か」とわかると便利だ。

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>ページのタイトル</title>
  <link rel="stylesheet" href="style.css">
</head>
<body>
  <header>
    <nav>
      <a href="/">ホーム</a>
      <a href="/about">概要</a>
    </nav>
  </header>
  <main>
    <h1>メインの見出し</h1>
    <p>本文がここに入る。</p>
  </main>
  <footer>
    <p>&copy; 2026 My Site</p>
  </footer>
  <script src="app.js"></script>
</body>
</html>
部分役割
<head>ページの設定情報(タイトル、CSS読み込み等)
<body>実際に画面に表示される内容
<link>CSSファイルの読み込み
<script>JavaScriptファイルの読み込み

CSS ── Webページの見た目

CSSとは何か

CSS(Cascading Style Sheets)は、HTMLで作った構造に見た目のデザインを加える言語だ。文字の色、サイズ、余白、背景、レイアウトなど、視覚的な表現をすべてCSSが担当する。

セレクタ {
  プロパティ: 値;
}

「セレクタ」で対象を選び、「プロパティ」で何を変えるかを指定し、「値」で具体的な設定を書く。

知っておくべきCSSプロパティ一覧

以下のプロパティの名前と意味を知っていると、AIへの指示が的確になる。

テキスト関連

プロパティ効果値の例AIへの指示例
color文字色red, #333, rgb(0,0,0)「見出しのcolorを青にして」
font-size文字サイズ16px, 1.5rem, 2em「本文のfont-sizeを18pxに」
font-weight文字の太さbold, 400, 700「font-weight: boldにして」
text-align文字揃えcenter, left, right「text-align: centerで中央揃え」
line-height行間1.5, 2, 24px「行間を広げてline-height: 1.8に」

余白・ボックス関連

プロパティ効果値の例AIへの指示例
margin外側の余白20px, 10px 20px「marginを広くして余白を取って」
padding内側の余白16px, 8px 16px「paddingを増やして中身に余裕を」
border枠線1px solid #ccc「borderで枠線をつけて」
border-radius角の丸み8px, 50%「border-radiusで角を丸くして」
background背景#f5f5f5, url(bg.jpg)「背景をグレーにして」

レイアウト関連

プロパティ効果値の例AIへの指示例
display表示方法flex, grid, block, none「display: flexで横並びにして」
flexFlexbox設定flex-direction, justify-content「Flexboxで中央揃えにして」
gridGrid設定grid-template-columns「CSS Gridで3列にして」
width / height幅・高さ100%, 300px, auto「widthを100%にしてレスポンシブに」
position配置方法relative, absolute, fixed「position: fixedでヘッダー固定」
ℹ️

marginとpaddingの違い

marginは要素の「外側」の余白。隣の要素との間隔を空ける。paddingは要素の「内側」の余白。テキストと枠線の間を空ける。段ボール箱でたとえると、marginは箱同士の距離、paddingは箱の中の緩衝材のようなもの。

FlexboxとGridを知っておこう

現代のWebレイアウトで最も重要なのがFlexboxGridの2つだ。

Flexbox = 一方向の並び(横一列、縦一列)に強い

.container {
  display: flex;
  justify-content: center;  /* 横方向の中央揃え */
  align-items: center;      /* 縦方向の中央揃え */
  gap: 16px;                /* 要素間の隙間 */
}

Grid = 二次元のレイアウト(行と列)に強い

.container {
  display: grid;
  grid-template-columns: repeat(3, 1fr); /* 3等分 */
  gap: 20px;
}
用途使うべき技術AIへの指示例
ナビゲーションメニューFlexbox「Flexboxでナビを横並びにして」
カード一覧Grid「CSS Gridでカードを3列に」
ヘッダー内のロゴ+メニューFlexbox「Flexboxで左右に配置して」
ダッシュボードGrid「Gridでダッシュボードレイアウトを」

レスポンシブデザインの基本

スマホでもPCでもきれいに表示するための仕組みがレスポンシブデザインだ。CSSのメディアクエリを使って、画面幅に応じてレイアウトを変える。

/* PC(デフォルト) */
.cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

/* スマホ(768px以下) */
@media (max-width: 768px) {
  .cards {
    grid-template-columns: 1fr;
  }
}
💡

バイブコーディングでの活用ポイント

AIに「レスポンシブ対応してほしい」「スマホでは1カラム、PCでは3カラムにして」と言えるだけで、プロ品質のレイアウトが手に入る。メディアクエリのコードを書く必要はない。


JavaScript ── Webページに動きを加える

JavaScriptとは何か

JavaScript(JS)は、Webページに**インタラクション(動き)**を加える言語だ。ボタンをクリックしたら何かが起きる、フォームの入力をチェックする、外部からデータを取ってくる──こうした「動的な処理」はすべてJavaScriptの担当。

HTMLが家の骨組み、CSSがインテリアだとすれば、JavaScriptは電気・水道・スマート家電だ。なくても家は建つが、あると格段に便利になる。

知っておくべき5つの概念

バイブコーダーとしてJavaScriptの全文法を覚える必要はない。ただし、以下の5つの概念を「名前と意味」だけ知っておくと、AIへの指示が格段にうまくなる。

1. 変数(データの入れ物)

const siteName = "My Blog";      // 変更できない変数
let count = 0;                    // 変更できる変数

変数は「名前のついた箱」。データを入れておいて、あとで使える。const は固定値、let は変わる値に使う。

AIへの指示例: 「ユーザー名を変数で管理して、ヘッダーに表示して」

2. 関数(処理のまとまり)

function greet(name) {
  return `こんにちは、${name}さん!`;
}

// アロー関数(短い書き方)
const greet = (name) => `こんにちは、${name}さん!`;

関数は「レシピ」のようなもの。手順をまとめておいて、必要なときに呼び出す。

AIへの指示例: 「合計金額を計算する関数を作って」

3. イベント(ユーザーの操作に反応)

button.addEventListener("click", () => {
  alert("ボタンがクリックされました!");
});

// よくあるイベントの種類
// click    → クリック
// submit   → フォーム送信
// keydown  → キー押下
// scroll   → スクロール
// mouseover → マウスホバー

イベントは「きっかけ」。ユーザーが何かをしたときに処理を実行する仕組み。

AIへの指示例: 「ボタンをクリックしたらモーダルを表示して」「スクロールしたらヘッダーの色を変えて」

4. DOM操作(ページの書き換え)

// 要素を取得
const title = document.querySelector("h1");

// 内容を変更
title.textContent = "新しいタイトル";

// スタイルを変更
title.style.color = "red";

// 要素を追加
const newItem = document.createElement("li");
newItem.textContent = "新しい項目";
document.querySelector("ul").appendChild(newItem);

DOM(Document Object Model)操作は、JavaScriptからHTMLを動的に書き換える仕組み。ページをリロードしなくても内容が変わる。

AIへの指示例: 「検索結果をDOM操作で動的に表示して」

5. API呼び出し(外部データの取得)

// 天気情報を取得する例
const response = await fetch("https://api.weather.com/data");
const data = await response.json();
console.log(data.temperature);

API(Application Programming Interface)は、外部サービスとデータをやり取りする窓口。天気情報、為替レート、ニュースなど、あらゆるデータをAPIから取得できる。

AIへの指示例: 「OpenWeather APIから天気データを取得して画面に表示して」

⚠️

APIキーの取り扱いに注意

APIを使うにはたいてい「APIキー」が必要。これは家の鍵のようなもので、絶対に公開してはいけない。AIに「APIキーを環境変数で管理して」と指示しよう。


3つの言語の連携を見てみよう

実際のWebサイトでは、HTML・CSS・JavaScriptが協力して動く。簡単なカウンターアプリを例に、連携の仕組みを見てみよう。

<!-- HTML: 構造 -->
<div class="counter-app">
  <h2>カウンター</h2>
  <p class="count">0</p>
  <button id="increment">+1</button>
  <button id="decrement">-1</button>
</div>
/* CSS: 見た目 */
.counter-app {
  text-align: center;
  padding: 40px;
  background: #f0f4f8;
  border-radius: 12px;
}
.count {
  font-size: 48px;
  font-weight: bold;
  color: #2d3748;
}
button {
  padding: 12px 24px;
  margin: 8px;
  border: none;
  border-radius: 8px;
  background: #4299e1;
  color: white;
  cursor: pointer;
}
// JavaScript: 動き
let count = 0;
const display = document.querySelector(".count");

document.querySelector("#increment").addEventListener("click", () => {
  count++;
  display.textContent = count;
});

document.querySelector("#decrement").addEventListener("click", () => {
  count--;
  display.textContent = count;
});

このように、HTMLで部品を用意し、CSSで見た目を整え、JavaScriptで動きを加える──これがWeb開発の基本パターンだ。


フレームワーク・ライブラリを知ろう

実際の開発では、HTML・CSS・JavaScriptを直接書くことは少なく、フレームワークライブラリを使うことがほとんどだ。これは「家を建てる」際にイチから木を切り出すのではなく、プレハブのキットを使うようなもの。

主要なフレームワーク・ライブラリ

名前カテゴリ特徴向いている用途
ReactJSフレームワークMeta製。コンポーネント指向。最も人気Webアプリ全般、SPA
Next.jsReactの拡張SSR・SSG対応。SEOに強いブログ、ECサイト、業務アプリ
Astro静的サイトフレームワーク高速。MDX対応。JSを最小限にブログ、ドキュメントサイト
Vue.jsJSフレームワーク学習コストが低い。日本人気高い中小規模アプリ
SvelteJSフレームワークコンパイル型。非常に高速パフォーマンス重視アプリ
Tailwind CSSCSSフレームワークユーティリティクラスでCSS記述あらゆるプロジェクト
BootstrapCSSフレームワーク定番。すぐ使えるコンポーネント豊富プロトタイプ、管理画面
shadcn/uiUIコンポーネント集React + Tailwind。モダンなUI部品ダッシュボード、SaaS

npmとは

npm(Node Package Manager) は、JavaScriptのパッケージ管理ツール。食材の配達サービスのようなもので、「Reactを使いたい」「Tailwindを入れたい」と指定すると、必要なファイルを自動的にダウンロード・管理してくれる。

# Reactプロジェクトを作る
npx create-next-app my-app

# パッケージをインストール
npm install tailwindcss

# 開発サーバーを起動
npm run dev
💡

バイブコーディングでの活用ポイント

AIに「Next.js + Tailwind CSS + shadcn/uiでダッシュボードを作って」と指示できると、最初からモダンな技術スタックでプロジェクトが始まる。フレームワークの名前を知っているだけで、AIの出力品質が格段に上がる。

バイブコーダーにおすすめの技術スタック

STEP 1

まずはこれだけ

HTML + CSS + JavaScript の基本概念を理解する。コードは書かなくてOK。

STEP 2

静的サイトを作る

Astro + Tailwind CSS でブログや紹介サイトを構築。シンプルで学びやすい。

STEP 3

動的なアプリに挑戦

Next.js(React)+ Tailwind CSS でインタラクティブなWebアプリを作る。

STEP 4

本格的なプロダクト

Next.js + shadcn/ui + Supabase(データベース)で SaaS や業務アプリを構築。


これを知っているとAIへの指示が変わる

Before(知識なし)

いい感じのサイトを作って

AIは「何を使って」「どんなデザインで」「どんな機能を」作ればいいか判断できず、汎用的な結果を返してしまう。

After(ざっくり知っている)

Next.js + Tailwind CSSでブログサイトを作って。
headerにnavを入れて、ロゴは左寄せ、メニューは右寄せでFlexbox使って。
mainの中にsectionを3つ作って、カードはCSS Gridで3列に。
h1のfont-sizeは2.5rem、colorは#1a202c。
カードのborder-radiusは12px、box-shadowをつけて浮き上がった感じに。
ボタンをクリックしたらモーダルが開くようにして。
スマホではカードを1カラムにレスポンシブ対応。

コードは書かなくていい。でも「何があるか」を知っているだけで、AIと格段にうまくコミュニケーションできる。


よく聞く用語集(25語)

Web開発でよく出てくる用語を一覧にまとめた。暗記は不要。わからない用語が出てきたときに辞書として使ってほしい。

用語意味一言で
HTMLWebの構造を定義する言語家の骨組み
CSSWebの見た目を定義する言語インテリア
JavaScriptWebに動きを加える言語電気・水道
DOMHTMLをプログラムから操作する仕組み家のリフォーム
API外部サービスとの接続口出前の注文窓口
フレームワーク開発を効率化するツール一式プレハブキット
ライブラリ特定機能を提供する部品集便利工具セット
ReactMeta製のJSフレームワーク人気No.1キット
Next.jsReact拡張。SSR/SSG対応高機能キット
Astro静的サイト用フレームワークブログ向きキット
Vue.js学習しやすいJSフレームワーク入門向きキット
Tailwind CSSユーティリティファーストCSS調味料セット
Bootstrap定番のCSSフレームワークお手軽インテリアセット
npmパッケージ管理ツール食材配達サービス
Node.jsサーバーでJSを動かす環境業務用キッチン
TypeScript型付きJavaScript品質検査付きJS
JSONデータ交換フォーマット注文伝票
SPAシングルページアプリケーションページ遷移しないアプリ
SSRサーバーサイドレンダリングサーバーで下ごしらえ
SSG静的サイト生成作り置き料理
コンポーネント再利用可能なUI部品レゴブロック
レスポンシブ画面幅に応じたデザイン調整伸縮する家具
デプロイサイトをインターネットに公開家のお披露目
FlexboxCSS一方向レイアウト一列に並べる棚
GridCSS二次元レイアウト格子状の棚
💡

わからない用語はAIに聞こう

知らない用語が出てきたら「〇〇って何?初心者にわかるように教えて」とAIに聞く。それがバイブコーディング。すべてを暗記する必要はない。


学習ロードマップ

「バイブコーダーとして、どの順番でWeb技術を学べばいいか?」をタイムライン形式でまとめた。

Week 1

HTML/CSS/JSの概念を知る

この記事を読んで、3つの言語の役割とタグ・プロパティの名前を把握する。コードは書かなくてOK。

2〜3時間
Week 2

AIで簡単なページを作る

CursorやBoltで「自己紹介ページをHTML + CSSで作って」と指示してみる。出力されたコードを眺めて感覚をつかむ。

3〜5時間
Week 3

フレームワークに触れる

「Astro + Tailwind CSSでブログを作って」とAIに指示。フレームワークの便利さを体感する。

5〜8時間
Week 4

JavaScriptの動きを加える

ボタンクリック、モーダル表示、API連携など、動的な機能をAIに指示して追加してみる。

5〜8時間
Week 5+

本格的なアプリに挑戦

ToDoアプリ、ダッシュボード、ポートフォリオなど実用的なプロジェクトに取り組む。

継続的に

FAQ(よくある質問)

Q1. HTML/CSS/JavaScriptを全部覚えないとバイブコーディングはできない?

いいえ、覚える必要はありません。 バイブコーディングの本質は「AIにやってもらうこと」。重要なのは何ができるかを知っていることであり、具体的なコードの書き方を暗記する必要はない。この記事の用語集を辞書として使えば十分だ。

Q2. HTML/CSS/JavaScriptの中で、一番重要なのはどれ?

バイブコーダーにとってはCSSの知識が最も役立つ。 なぜなら「見た目の調整」はAIに最も頻繁に依頼する作業だから。「marginを広げて」「font-sizeを大きくして」「Flexboxで横並びにして」──こうした指示を出せるだけで、作業効率が大きく変わる。

Q3. JavaScriptとTypeScriptの違いは?

TypeScript = JavaScript + 型チェック。TypeScriptはJavaScriptに「型」という仕組みを加えたもので、エラーを事前に発見しやすくなる。バイブコーディングでは「TypeScriptで書いて」と指示するだけでOK。AIが自動的に型を付けてくれる。現在の主流はTypeScriptなので、AIに指示するときは「TypeScriptで」と付け加えるとベター。

Q4. ReactとNext.jsの違いは?

ReactはUIライブラリ、Next.jsはReactを拡張したフレームワーク。Reactは「部品を作る」ことに特化しており、ルーティング(ページ移動)やSEO対策は自分で設定する必要がある。Next.jsはそれらを最初から備えている。バイブコーディングでは、特別な理由がなければNext.jsを選ぶのがおすすめ

Q5. Tailwind CSSと普通のCSSの違いは?

Tailwind CSSは、CSSをクラス名で書くアプローチ。通常のCSSでは color: blue; font-size: 16px; と書くところを、Tailwindでは class="text-blue-500 text-base" とHTML上に直接書く。AIとの相性が非常によく、「この部分をtext-lg font-boldにして」のように、クラス名で指示できる。

Q6. 「フレームワークなし」で作ってもいいの?

もちろんOK。 簡単なランディングページや自己紹介ページなら、素のHTML + CSSで十分。ただし、ページが増えたりインタラクションが複雑になると、フレームワークを使ったほうが圧倒的に効率的。AIに「シンプルなHTML/CSSで作って」と指示すれば、フレームワークなしで作ってくれる。

Q7. エラーが出たとき、HTMLなのかCSSなのかJSなのかどう見分ける?

エラーの種類で大まかに判別できる。

エラーの症状原因の可能性対処法
要素が表示されないHTML(タグの閉じ忘れ等)「HTMLの構造をチェックして」
レイアウトが崩れるCSS(プロパティの競合等)「CSSのレイアウトを修正して」
ボタンが反応しないJavaScript(イベント未設定等)「JSのイベントリスナーを確認して」
コンソールに赤文字JavaScript(実行エラー)エラーメッセージをそのままAIに貼る

まとめ

この記事で伝えたかったことは、たった1つ。

コードは書けなくていい。でも「何があるか」を知っているだけで、AIへの指示は格段にうまくなる。

HTML・CSS・JavaScriptの3つの言語はWebの基盤だ。家の骨組み(HTML)、インテリア(CSS)、電気・水道(JavaScript)──この3つの役割を理解しているだけで、バイブコーディングの精度は大きく変わる。

最後にもう一度、バイブコーダーとして覚えておくべきポイントを整理しよう。

ポイント内容
HTMLタグの名前h1〜h6, p, div, header, nav, section, button 等
CSSプロパティの名前color, font-size, margin, padding, display: flex/grid 等
JavaScriptの概念変数、関数、イベント、DOM操作、API呼び出し
フレームワーク名React, Next.js, Astro, Tailwind CSS 等
用語の意味SPA, SSR, SSG, コンポーネント, レスポンシブ 等

すべてを暗記する必要はない。この記事をブックマークして、わからないことが出てきたら戻ってくる。それがバイブコーダーのスタイルだ。

他のカテゴリの記事