はじめに
Web 制作を効率化し、レスポンシブ対応を簡単に実現できるフロントエンドフレームワーク Bootstrap 5 の基礎から実践までを、サンプルコード付きで解説します。
目次
1. Bootstrap とは
- Twitter 社 が開発したオープンソースの CSS フレームワーク
- レスポンシブデザイン対応済み
- 豊富な UI コンポーネント(ボタン、ナビバー、カードなど)を標準搭載
- Sass 変数でテーマや色をカスタマイズ可能
2. 環境構築(インストール方法)
CDN で試す
<!-- head 内に貼るだけ -->
<link
  href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css"
  rel="stylesheet"
/>
<script
  src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"
></script>
npm/Yarn で導入
npm
npm install bootstrap
Yarn
yarn add bootstrap
ES Modules で読み込む例
import 'bootstrap/dist/css/bootstrap.min.css';
import 'bootstrap';
3. グリッドシステム
12 分割のレスポンシブグリッドでレイアウトを簡単に組めます。
<div class="container">
  <div class="row">
    <div class="col-md-4">カラム1</div>
    <div class="col-md-4">カラム2</div>
    <div class="col-md-4">カラム3</div>
  </div>
</div>
.container:コンテンツを中央寄せ&左右に余白
.row:行を定義
.col-{breakpoint}-{size}:ブレークポイントごとの幅指定
<div class="row">
  <div class="col-12 col-sm-6 col-lg-4">—</div>
  <div class="col-12 col-sm-6 col-lg-4">—</div>
  <div class="col-12 col-sm-6 col-lg-4">—</div>
</div>
4. 主要コンポーネント紹介
4.1 ボタン
<button class="btn btn-primary">Primary</button>
<button class="btn btn-outline-secondary">Secondary</button>
4.2 ナビゲーションバー
<nav class="navbar navbar-expand-lg navbar-light bg-light">
  <div class="container-fluid">
    <a class="navbar-brand" href="#">Brand</a>
    <button
      class="navbar-toggler"
      type="button"
      data-bs-toggle="collapse"
      data-bs-target="#navMenu"
    >
      <span class="navbar-toggler-icon"></span>
    </button>
    <div class="collapse navbar-collapse" id="navMenu">
      <ul class="navbar-nav">
        <li class="nav-item"><a class="nav-link active" href="#">Home</a></li>
        <li class="nav-item"><a class="nav-link" href="#">Link</a></li>
      </ul>
    </div>
  </div>
</nav>
4.3 カード
<div class="card" style="width: 18rem;">
  <img src="path/to/image.jpg" class="card-img-top" alt="...">
  <div class="card-body">
    <h5 class="card-title">カードタイトル</h5>
    <p class="card-text">説明文。</p>
    <a href="#" class="btn btn-primary">詳細を見る</a>
  </div>
</div>
5. カスタマイズ方法
プロジェクト直下に _custom.scss を作成し、Sass 変数を上書きします。
// _custom.scss
$primary: #ff5722;
$font-family-base: 'Noto Sans JP', sans-serif;
@import "custom";
@import "~bootstrap/scss/bootstrap";
ユーティリティクラス(.text-primary など)も自動で反映されます。
6. 実践例:ランディングページ
<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8" />
  <title>ランディングページ</title>
  <link
    href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css"
    rel="stylesheet"
  />
</head>
<body>
  <!-- ヘッダー -->
  <header class="bg-primary text-white text-center py-5">
    <h1>My Product</h1>
    <p class="lead">最高のプロダクトをお届けします</p>
    <a href="#features" class="btn btn-light btn-lg">詳しく見る</a>
  </header>
  <!-- 特徴セクション -->
  <section id="features" class="container py-5">
    <div class="row g-4">
      <div class="col-md-4 text-center">
        <i class="bi bi-speedometer2 display-4"></i>
        <h3>高速</h3>
        <p>〜100ms レスポンス</p>
      </div>
      <div class="col-md-4 text-center">
        <i class="bi bi-shield-lock display-4"></i>
        <h3>安全</h3>
        <p>最新セキュリティ実装</p>
      </div>
      <div class="col-md-4 text-center">
        <i class="bi bi-phone display-4"></i>
        <h3>モバイル対応</h3>
        <p>スマホでも快適</p>
      </div>
    </div>
  </section>
  <!-- フッター -->
  <footer class="bg-dark text-white text-center py-3">
    © 2025 My Company
  </footer>
  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>
7. おわりに
Bootstrap を活用することで、UI 開発の効率が大幅にアップします。
ぜひあなたのプロジェクトに取り入れてみてください!





