Webプログラミング総合ガイド

HTML / CSS / JavaScript / PHP を横断して、概要基礎基本最新情報応用発展関連リンク をワンページで。

更新日: 2026-02-26

概要

このページは、Web開発の基盤となる HTML / CSS / JavaScript / PHP を、学習順・参照順の両方で俯瞰できるように構成しています。まずは「基礎」と「基本」で土台固め、次に「最新情報」で動向を押さえ、「応用」「発展」で実務力を養います。

このページの活用法(推奨ルート)
  1. まずは 基礎 で用語と役割を把握
  2. 基本 のサンプルを動かして理解を定着
  3. 最新情報 で仕様や潮流をキャッチアップ
  4. 応用発展 でプロダクション実装へ
  5. 関連リンク をブクマして深掘り継続

基礎

役割の切り分けを明確に理解しましょう。

  • HTML:文書構造・意味付け(セマンティクス)
  • CSS:見た目(レイアウト・タイポグラフィ・色)
  • JavaScript:振る舞い(動的UI・イベント・通信)
  • PHP:サーバーサイド(テンプレート・API・DB連携)
最小ページ(HTML+CSS+JS+PHP)の骨格例
<!-- index.php -->
<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>Minimal Web App</title>
  <style>body{font-family:sans-serif}</style>
</head>
<body>
  <h1>Hello, Web!</h1>
  <button id="ping">Ping PHP</button>
  <script>
    document.getElementById('ping').addEventListener('click', async () => {
      const res = await fetch('ping.php');
      alert(await res.text());
    });
  </script>
</body>
</html>

基本

HTML:セマンティックな構造

<header>サイトヘッダ</header>
<nav><a href="#a">A</a> | <a href="#b">B</a></nav>
<main>
  <article>
    <h1>記事タイトル</h1>
    <section><h2>見出し</h2>本文...</section>
  </article>
</main>
<footer>© 2025</footer>

CSS:レイアウトの基礎(Grid/Flex)

/* 2カラムレイアウト(Grid) */
.wrapper {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 1rem;
}
/* 横並び(Flex) */
.nav {
  display: flex;
  gap: .5rem;
  flex-wrap: wrap;
}

JavaScript:イベントと状態

// ボタンでカウント
let n = 0;
const btn = document.querySelector('#countBtn');
const out = document.querySelector('#countOut');
btn.addEventListener('click', () => { out.textContent = ++n; });

PHP:テンプレートとループ

<?php foreach ($items as $it): ?>
  <li><a href="<?= htmlspecialchars($it['url']) ?>">
    <?= htmlspecialchars($it['title']) ?></a></li>
<?php endforeach; ?>
フォーム → PHP → JSON返信 → JSで表示(超シンプル)
<form id="echoForm">
  <input name="q" placeholder="キーワード">
  <button>送信</button>
</form>
<pre id="echoOut"></pre>

<script>
document.getElementById('echoForm').addEventListener('submit', async (e) => {
  e.preventDefault();
  const fd = new FormData(e.currentTarget);
  const res = await fetch('echo.php', { method:'POST', body: fd });
  const json = await res.json();
  document.getElementById('echoOut').textContent = JSON.stringify(json, null, 2);
});
</script>

最新情報

応用

  • アクセシビリティ(キーボード操作、ARIA、コントラスト)
  • パフォーマンス(LCP/CLS/INP、コード分割、遅延ロード)
  • セキュリティ(CSP/CSRF/XSS、SameSite Cookie)
  • ビルドレス志向(原始的に速い:ESM、Import Maps、HTTP/2/3活用)
ミニ:アクセシブルなトグル(詳細/要約)
<details>
  <summary>ショートカット一覧</summary>
  <ul><li><span class="kbd">F</span> 検索</li></ul>
</details>
ミニ:CSPヘッダ例(Apache)
Header set Content-Security-Policy "default-src 'self'; img-src 'self' data:; style-src 'self' 'unsafe-inline'; script-src 'self';"

発展

  • SSR/ISR, Edge Functions, キャッシュ戦略
  • Web Components / Custom Elements
  • Service Worker / オフライン対応 / PWA
  • Observability(ログ/メトリクス/トレース)
ミニ:Service Worker 登録の超基本
if ('serviceWorker' in navigator) {
  navigator.serviceWorker.register('/sw.js').catch(console.error);
}