Bootstrap: 実践プロジェクト:企業ウェブサイトのホームページ
最終更新:2026-08-26
1. レッスンの紹介
(1) 前提条件
- Bootstrapのユーティリティクラスの使用法(レッスン18)
- 最初の18のレッスンで学んだすべてのコンポーネントとレイアウトの知識
- HTML5のセマンティックタグとページ構造の計画
(2) 🎯 学習目標
- Bootstrapのコンポーネントを総合的に使用して、完全な企業ウェブサイトのホームページを構築する
- Navbar、Hero、機能カード、チーム、フォーム、フッターモジュールを設計する
- モバイル、タブレット、デスクトップ向けにレスポンシブなレイアウトを実装する
- Bootstrap Iconsを使用して視覚的な階層構造を強化する
- 企業ウェブサイト開発のためのモジュール分解と拡張方法をマスターする
(3) 痛点
Aliceは真っ白なページに直面し、企業ウェブサイトのホームページをゼロから構築する必要があります—Navbar、Hero、機能カード、チーム紹介、連絡フォーム、そしてフッターです。各モジュールは慎重な設計が必要で、どこから手をつけるべきか分かりません。
(4) 解決策
このレッスンでは、前の18のレッスンで学んだ知識を総合的に応用し、完全な企業ウェブサイトのホームページをゼロから構築します。Aliceは初めて完全なBootstrapプロジェクトを一人で完成させます—このレッスンのテンプレートを使用して、自分のポートフォリオウェブサイトを作成します。
理解のヒント: 実践 = ブロックで家を建てること—以前に学んだ各コンポーネント(Navbar、カード、カルーセル、フォーム)はブロックです。今、それらを完全なページに組み合わせます。
(5) 利点
このレッスンのテンプレートを通じて、Aliceは完全なレスポンシブな企業ウェブサイトのホームページを正常に構築しました。すべてのモジュールはBootstrapコンポーネントを再利用しており、コードはクリーンで標準化されており、本番環境で使用するにはコンテンツを置き換えるだけです。
2. プロジェクトの概要
以下のモジュールを含む企業ウェブサイトのホームページを構築します:
graph TD
A[Navbar - 上部固定] --> B[ヒーローバナー - 全幅背景 + CTA]
B --> C[特徴 - 3つのカード]
C --> D[会社概要 - テキストと画像の混合]
D --> E[チーム - 4人のメンバーカード]
E --> F[連絡フォーム - フォーム + 情報]
F --> G[フッター - リンク + 著作権]
出力例: Bootstrap 5.3 スタイルの効果的なコンポーネントの効果(ボタン、カード、カルーセル、折りたたみなど)。ページはデフォルトでBootstrapのデフォルトテーマ(ライト)とレスポンシブグリッドを使用しています。
▶ サンプル 完全な企業ウェブサイトテンプレート
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Acme Corp - Home</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css">
</head>
<body>
<!-- Navbar -->
<nav class="navbar navbar-expand-lg bg-dark navbar-dark fixed-top">
<div class="container">
<a class="navbar-brand" href="#"><i class="bi bi-box me-2"></i>Acme Corp</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#mainNav">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="mainNav">
<ul class="navbar-nav ms-auto">
<li class="nav-item"><a class="nav-link active" href="#hero">Home</a></li>
<li class="nav-item"><a class="nav-link" href="#features">Features</a></li>
<li class="nav-item"><a class="nav-link" href="#team">Team</a></li>
<li class="nav-item"><a class="nav-link" href="#contact">Contact</a></li>
</ul>
</div>
</div>
</nav>
<!-- Hero -->
<section id="hero" class="bg-primary text-white py-5 mt-5">
<div class="container text-center py-5">
<h1 class="display-4 fw-bold">Build Faster with Bootstrap</h1>
<p class="lead mb-4">A modern, responsive framework for your next project.</p>
<a href="#features" class="btn btn-light btn-lg px-4">Learn More</a>
<a href="#contact" class="btn btn-outline-light btn-lg px-4 ms-2">Contact Us</a>
</div>
</section>
<!-- Features -->
<section id="features" class="py-5">
<div class="container">
<h2 class="text-center mb-5">Why Choose Us</h2>
<div class="row g-4">
<div class="col-md-4">
<div class="card h-100 text-center p-4 border-0 shadow-sm">
<i class="bi bi-lightning-charge-fill text-primary fs-1"></i>
<div class="card-body">
<h5 class="card-title">Fast Performance</h5>
<p class="card-text text-body-secondary">Optimized for speed with minimal CSS and JS footprint.</p>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card h-100 text-center p-4 border-0 shadow-sm">
<i class="bi bi-phone-fill text-primary fs-1"></i>
<div class="card-body">
<h5 class="card-title">Fully Responsive</h5>
<p class="card-text text-body-secondary">Works flawlessly on mobile, tablet, and desktop.</p>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card h-100 text-center p-4 border-0 shadow-sm">
<i class="bi bi-palette-fill text-primary fs-1"></i>
<div class="card-body">
<h5 class="card-title">Customizable</h5>
<p class="card-text text-body-secondary">Easy to theme with Sass variables and CSS custom properties.</p>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- About -->
<section class="py-5 bg-light">
<div class="container">
<div class="row align-items-center">
<div class="col-lg-6 mb-4 mb-lg-0">
<img src="https://via.placeholder.com/600x400/0d6efd/fff?text=About+Us" class="img-fluid rounded-3 shadow" alt="About">
</div>
<div class="col-lg-6">
<h2>About Our Company</h2>
<p class="lead text-body-secondary">We have been building web solutions since 2015.</p>
<p>Our team of experienced developers uses Bootstrap to create fast, reliable, and beautiful web applications for clients worldwide.</p>
<ul class="list-unstyled">
<li class="mb-2"><i class="bi bi-check-circle-fill text-success me-2"></i>200+ projects delivered</li>
<li class="mb-2"><i class="bi bi-check-circle-fill text-success me-2"></i>50+ enterprise clients</li>
<li class="mb-2"><i class="bi bi-check-circle-fill text-success me-2"></i>99% client satisfaction</li>
</ul>
</div>
</div>
</div>
</section>
<!-- Team -->
<section id="team" class="py-5">
<div class="container">
<h2 class="text-center mb-5">Meet Our Team</h2>
<div class="row g-4">
<div class="col-6 col-lg-3">
<div class="card text-center border-0">
<img src="https://via.placeholder.com/150/0d6efd/fff?text=AW" class="rounded-circle mx-auto mt-3" width="120" height="120" alt="Alice">
<div class="card-body">
<h5 class="card-title">Alice Wang</h5>
<p class="card-text text-body-secondary">CEO & Founder</p>
</div>
</div>
</div>
<div class="col-6 col-lg-3">
<div class="card text-center border-0">
<img src="https://via.placeholder.com/150/198754/fff?text=BC" class="rounded-circle mx-auto mt-3" width="120" height="120" alt="Bob">
<div class="card-body">
<h5 class="card-title">Bob Chen</h5>
<p class="card-text text-body-secondary">CTO</p>
</div>
</div>
</div>
<div class="col-6 col-lg-3">
<div class="card text-center border-0">
<img src="https://via.placeholder.com/150/dc3545/fff?text=CL" class="rounded-circle mx-auto mt-3" width="120" height="120" alt="Charlie">
<div class="card-body">
<h5 class="card-title">Charlie Li</h5>
<p class="card-text text-body-secondary">Lead Developer</p>
</div>
</div>
</div>
<div class="col-6 col-lg-3">
<div class="card text-center border-0">
<img src="https://via.placeholder.com/150/6f42c1/fff?text=DY" class="rounded-circle mx-auto mt-3" width="120" height="120" alt="Diana">
<div class="card-body">
<h5 class="card-title">Diana Yang</h5>
<p class="card-text text-body-secondary">UX Designer</p>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Contact -->
<section id="contact" class="py-5 bg-light">
<div class="container">
<h2 class="text-center mb-5">Get In Touch</h2>
<div class="row justify-content-center">
<div class="col-md-8 col-lg-6">
<form class="needs-validation" novalidate>
<div class="mb-3">
<label class="form-label">Name</label>
<input type="text" class="form-control" required>
<div class="invalid-feedback">Please enter your name.</div>
</div>
<div class="mb-3">
<label class="form-label">Email</label>
<input type="email" class="form-control" required>
<div class="invalid-feedback">Please enter a valid email.</div>
</div>
<div class="mb-3">
<label class="form-label">Message</label>
<textarea class="form-control" rows="4" required></textarea>
<div class="invalid-feedback">Please enter a message.</div>
</div>
<button class="btn btn-primary w-100" type="submit">Send Message</button>
</form>
</div>
</div>
</div>
</section>
<!-- Footer -->
<footer class="bg-dark text-white py-4">
<div class="container">
<div class="row">
<div class="col-md-6">
<p class="mb-0">© 2026 Acme Corp. All rights reserved.</p>
</div>
<div class="col-md-6 text-md-end">
<a href="#" class="text-white me-3"><i class="bi bi-twitter-x"></i></a>
<a href="#" class="text-white me-3"><i class="bi bi-github"></i></a>
<a href="#" class="text-white"><i class="bi bi-linkedin"></i></a>
</div>
</div>
</div>
</footer>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
<script>
(function() {
var forms = document.querySelectorAll('.needs-validation')
Array.prototype.slice.call(forms).forEach(function(form) {
form.addEventListener('submit', function(event) {
if (!form.checkValidity()) {
event.preventDefault()
event.stopPropagation()
}
form.classList.add('was-validated')
}, false)
})
})()
</script>
</body>
</html>
出力例: Bootstrap 5.3 スタイルの効果的なコンポーネントの効果(ボタン、カード、カルーセル、折りたたみなど)。ページはデフォルトでBootstrapのデフォルトテーマ(ライト)とレスポンシブグリッドを使用しています。
3. モジュール分解
| モジュール | 使用するコンポーネント/ユーティリティクラス | テクニカルポイント |
|---|---|---|
| Navbar | navbar-expand-lg fixed-top scroll |
上部に固定、内部リンクはスムーズスクロール |
| Hero | display-4 lead btn-lg bg-primary |
全幅背景 + デュアルCTAボタン |
| 特徴 | card h-100 shadow-sm row-cols-* |
3つの等高カード、JS不要 |
| 会社概要 | row align-items-center img-fluid |
テキストと画像を並べて表示、レスポンシブな折り返し |
| チーム | rounded-circle card border-0 |
レスポンシブな4人グリッド |
| フォーム | form-control needs-validation |
完全なフォームバリデーション |
| フッター | bg-dark flex text-md-end |
レスポンシブな左右カラム |
4. モジュールのバリエーションと拡張
▶ サンプル ヒーローセクションのバリエーション
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Hero Variations</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css">
</head>
<body>
<!-- Hero Type 1: Centered Text -->
<section class="bg-primary text-white py-5">
<div class="container text-center py-4">
<h1 class="display-4 fw-bold">Centered Hero</h1>
<p class="lead mb-4">Simple centered text with CTA buttons.</p>
<a href="#" class="btn btn-light btn-lg px-4">Get Started</a>
</div>
</section>
<!-- Hero Type 2: Split Image + Text -->
<section class="bg-dark text-white py-5">
<div class="container">
<div class="row align-items-center">
<div class="col-lg-6 mb-4 mb-lg-0">
<h1 class="display-5 fw-bold">Split Layout Hero</h1>
<p class="lead mb-4">Text on left, image on right. Great for product pages.</p>
<a href="#" class="btn btn-warning btn-lg">Learn More</a>
</div>
<div class="col-lg-6 text-center">
<i class="bi bi-laptop display-1 text-warning"></i>
</div>
</div>
</div>
</section>
<!-- Hero Type 3: Background Image -->
<section class="py-5" style="background: linear-gradient(rgba(0,0,0,0.6), rgba(0,0,0,0.6)), url('https://via.placeholder.com/1200x400/333/fff?text=BG'); background-size: cover; background-position: center;">
<div class="container text-center py-5 text-white">
<p class="text-uppercase small fw-bold text-warning">Limited Offer</p>
<h1 class="display-4 fw-bold">Background Image Hero</h1>
<p class="lead mb-4">With overlay gradient for readability.</p>
<div class="d-flex justify-content-center gap-2">
<a href="#" class="btn btn-warning btn-lg px-4">Shop Now</a>
<a href="#" class="btn btn-outline-light btn-lg px-4">Learn More</a>
</div>
</div>
</section>
</body>
</html>
出力例: Bootstrap 5.3 スタイルの効果的なコンポーネントの効果(ボタン、カード、カルーセル、折りたたみなど)。ページはデフォルトでBootstrapのデフォルトテーマ(ライト)とレスポンシブグリッドを使用しています。
▶ サンプル アイコン付き特徴グリッド
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Feature Grid with Icons</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css">
</head>
<body>
<div class="container py-5">
<h2 class="text-center mb-5">Why Choose Us</h2>
<div class="row g-4">
<div class="col-sm-6 col-lg-3">
<div class="card h-100 text-center p-4 border-0 shadow-sm">
<div class="rounded-circle bg-primary bg-opacity-10 d-inline-flex p-3 mx-auto mb-3">
<i class="bi bi-rocket-takeoff fs-2 text-primary"></i>
</div>
<h5>Fast Delivery</h5>
<p class="text-body-secondary small">Lightning-fast deployment with global CDN.</p>
</div>
</div>
<div class="col-sm-6 col-lg-3">
<div class="card h-100 text-center p-4 border-0 shadow-sm">
<div class="rounded-circle bg-success bg-opacity-10 d-inline-flex p-3 mx-auto mb-3">
<i class="bi bi-shield-check fs-2 text-success"></i>
</div>
<h5>Secure</h5>
<p class="text-body-secondary small">Enterprise-grade security built-in.</p>
</div>
</div>
<div class="col-sm-6 col-lg-3">
<div class="card h-100 text-center p-4 border-0 shadow-sm">
<div class="rounded-circle bg-warning bg-opacity-10 d-inline-flex p-3 mx-auto mb-3">
<i class="bi bi-graph-up-arrow fs-2 text-warning"></i>
</div>
<h5>Scalable</h5>
<p class="text-body-secondary small">Grows with your business, no limits.</p>
</div>
</div>
<div class="col-sm-6 col-lg-3">
<div class="card h-100 text-center p-4 border-0 shadow-sm">
<div class="rounded-circle bg-info bg-opacity-10 d-inline-flex p-3 mx-auto mb-3">
<i class="bi bi-headset fs-2 text-info"></i>
</div>
<h5>24/7 Support</h5>
<p class="text-body-secondary small">Round-the-clock expert assistance.</p>
</div>
</div>
</div>
</div>
</body>
</html>
出力例: Bootstrap 5.3 スタイルの効果的なコンポーネントの効果(ボタン、カード、カルーセル、折りたたみなど)。ページはデフォルトでBootstrapのデフォルトテーマ(ライト)とレスポンシブグリッドを使用しています。
▶ サンプル 顧客の声カルーセル
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Testimonial Carousel</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css">
</head>
<body>
<div class="container py-5">
<h2 class="text-center mb-5">What Our Clients Say</h2>
<div id="testimonialCarousel" class="carousel slide" data-bs-ride="carousel">
<div class="carousel-indicators">
<button type="button" data-bs-target="#testimonialCarousel" data-bs-slide-to="0" class="active"></button>
<button type="button" data-bs-target="#testimonialCarousel" data-bs-slide-to="1"></button>
<button type="button" data-bs-target="#testimonialCarousel" data-bs-slide-to="2"></button>
</div>
<div class="carousel-inner">
<div class="carousel-item active">
<div class="card text-center p-5 mx-auto border-0" style="max-width:600px;">
<i class="bi bi-quote fs-1 text-primary"></i>
<p class="lead mb-4">"Bootstrap transformed our development workflow. We shipped the MVP in 2 weeks instead of 2 months."</p>
<div class="d-flex align-items-center justify-content-center gap-3">
<img src="https://via.placeholder.com/60/0d6efd/fff?text=JD" class="rounded-circle" width="50" height="50" alt="Avatar">
<div class="text-start">
<strong>John Doe</strong>
<small class="d-block text-body-secondary">CEO, TechStart</small>
</div>
</div>
</div>
</div>
<div class="carousel-item">
<div class="card text-center p-5 mx-auto border-0" style="max-width:600px;">
<i class="bi bi-quote fs-1 text-success"></i>
<p class="lead mb-4">"The responsive components saved us countless hours. Everything just works across all devices."</p>
<div class="d-flex align-items-center justify-content-center gap-3">
<img src="https://via.placeholder.com/60/198754/fff?text=JS" class="rounded-circle" width="50" height="50" alt="Avatar">
<div class="text-start">
<strong>Jane Smith</strong>
<small class="d-block text-body-secondary">CTO, WebFlow Inc</small>
</div>
</div>
</div>
</div>
<div class="carousel-item">
<div class="card text-center p-5 mx-auto border-0" style="max-width:600px;">
<i class="bi bi-quote fs-1 text-warning"></i>
<p class="lead mb-4">"Sass customization was a game-changer. We matched our brand perfectly without fighting the framework."</p>
<div class="d-flex align-items-center justify-content-center gap-3">
<img src="https://via.placeholder.com/60/dc3545/fff?text=MW" class="rounded-circle" width="50" height="50" alt="Avatar">
<div class="text-start">
<strong>Mike Wang</strong>
<small class="d-block text-body-secondary">Lead Dev, DesignCo</small>
</div>
</div>
</div>
</div>
</div>
<button class="carousel-control-prev" type="button" data-bs-target="#testimonialCarousel" data-bs-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">Previous</span>
</button>
<button class="carousel-control-next" type="button" data-bs-target="#testimonialCarousel" data-bs-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Next</span>
</button>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>
出力例: Bootstrap 5.3 スタイルの効果的なコンポーネントの効果(ボタン、カード、カルーセル、折りたたみなど)。ページはデフォルトでBootstrapのデフォルトテーマ(ライト)とレスポンシブグリッドを使用しています。
▶ サンプル 料金テーブルセクション
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Pricing Table</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css">
</head>
<body>
<div class="container py-5">
<h2 class="text-center mb-2">Pricing Plans</h2>
<p class="text-center text-body-secondary mb-5">Choose the plan that fits your needs.</p>
<div class="row g-4 justify-content-center">
<div class="col-lg-3 col-md-6">
<div class="card h-100 text-center p-4 border-0 shadow-sm">
<h5 class="text-body-secondary">Starter</h5>
<div class="display-4 fw-bold my-3">$9</div>
<p class="text-body-secondary">per month</p>
<ul class="list-unstyled text-start mb-4">
<li class="mb-2"><i class="bi bi-check-circle-fill text-success me-2"></i>1 project</li>
<li class="mb-2"><i class="bi bi-check-circle-fill text-success me-2"></i>5GB storage</li>
<li class="mb-2"><i class="bi bi-check-circle-fill text-success me-2"></i>Basic support</li>
<li class="mb-2 text-body-tertiary"><i class="bi bi-x-circle-fill me-2"></i>Advanced analytics</li>
</ul>
<button class="btn btn-outline-primary w-100 mt-auto">Get Started</button>
</div>
</div>
<div class="col-lg-3 col-md-6">
<div class="card h-100 text-center p-4 border-primary border-2 shadow">
<div class="badge bg-primary text-uppercase mb-2" style="position:absolute;top:-12px;left:50%;transform:translateX(-50%);">Popular</div>
<h5>Professional</h5>
<div class="display-4 fw-bold my-3">$29</div>
<p class="text-body-secondary">per month</p>
<ul class="list-unstyled text-start mb-4">
<li class="mb-2"><i class="bi bi-check-circle-fill text-success me-2"></i>10 projects</li>
<li class="mb-2"><i class="bi bi-check-circle-fill text-success me-2"></i>50GB storage</li>
<li class="mb-2"><i class="bi bi-check-circle-fill text-success me-2"></i>Priority support</li>
<li class="mb-2"><i class="bi bi-check-circle-fill text-success me-2"></i>Advanced analytics</li>
</ul>
<button class="btn btn-primary w-100 mt-auto">Get Started</button>
</div>
</div>
<div class="col-lg-3 col-md-6">
<div class="card h-100 text-center p-4 border-0 shadow-sm">
<h5 class="text-body-secondary">Enterprise</h5>
<div class="display-4 fw-bold my-3">$99</div>
<p class="text-body-secondary">per month</p>
<ul class="list-unstyled text-start mb-4">
<li class="mb-2"><i class="bi bi-check-circle-fill text-success me-2"></i>Unlimited projects</li>
<li class="mb-2"><i class="bi bi-check-circle-fill text-success me-2"></i>500GB storage</li>
<li class="mb-2"><i class="bi bi-check-circle-fill text-success me-2"></i>24/7 support</li>
<li class="mb-2"><i class="bi bi-check-circle-fill text-success me-2"></i>Custom integrations</li>
</ul>
<button class="btn btn-outline-primary w-100 mt-auto">Contact Us</button>
</div>
</div>
</div>
</div>
</body>
</html>
出力例: Bootstrap 5.3 スタイルの効果的なコンポーネントの効果(ボタン、カード、カルーセル、折りたたみなど)。ページはデフォルトでBootstrapのデフォルトテーマ(ライト)とレスポンシブグリッドを使用しています。
(1) ページコンポーネント参照表
| セクション | 推奨コンポーネント | ユーティリティクラスの組み合わせ | レスポンシブな使用法 |
|---|---|---|---|
| Hero | container + display-* |
bg-primary text-white py-5 |
text-center text-md-start |
| 機能カード | card + row-cols-* |
border-0 shadow-sm h-100 |
col-12 col-md-4 |
| 会社概要 | row align-items-center |
img-fluid rounded-3 shadow |
col-lg-6 のスタック |
| チーム | card + rounded-circle |
border-0 text-center |
col-6 col-lg-3 |
| お客様の声 | carousel + card |
border-0 p-5 mx-auto |
d-none d-md-block |
| 料金 | card + list-unstyled |
border-primary shadow |
col-lg-3 col-md-6 |
| フォーム | form-control + needs-validation |
w-100 mb-3 |
col-md-8 col-lg-6 |
| フッター | bg-dark text-white |
py-4 text-md-end |
col-md-6 カラム |
(2) レスポンシブブレークポイント参照表
| ブレークポイント | クラスプレフィックス | 最小幅 | 対象デバイス |
|---|---|---|---|
| X-Small | なし | < 576px | モバイル縦向き |
| Small | sm |
≥ 576px | モバイル横向き |
| Medium | md |
≥ 768px | タブレット |
| Large | lg |
≥ 992px | ノートパソコン |
| X-Large | xl |
≥ 1200px | デスクトップモニター |
| XX-Large | xxl |
≥ 1400px | ワイドモニター |
| このテンプレートで使用 | md / lg |
MD + LG | タブレットからデスクトップまでカバー |
(3) カラースキームマッピング表
| CSS変数 | デフォルト値 | ブランドカラー例 | 使用法 |
|---|---|---|---|
--bs-primary |
#0d6efd |
#6f42c1(紫) |
主要ボタン、リンク、アクセントカラー |
--bs-secondary |
#6c757d |
#adb5bd(グレー) |
セカンダリテキスト、補助情報 |
--bs-success |
#198754 |
#20c997(シアン) |
成功状態、完了フィードバック |
--bs-warning |
#ffc107 |
#fd7e14(オレンジ) |
警告、注意、プロモーションマーカー |
--bs-danger |
#dc3545 |
#e83e8c(ピンク) |
エラー、削除、高リスク |
--bs-info |
#0dcaf0 |
#0d6efd(青) |
情報アラート、ガイダンスマーカー |
--bs-light |
#f8f9fa |
#f8f9fa |
ライト背景エリア |
--bs-dark |
#212529 |
#1a1a2e |
フッター、ダークエリア |
❓ よくある質問
IntersectionObserverを組み合わせて、現在表示されているセクションを判断する必要があります。これはBootstrapの組み込み機能ではありませんが、サードパーティのライブラリで実現できます。col-md-4はモバイルで自動的にスタックされ、navbar-expand-lgは狭い画面でハンバーガーメニューに折りたたまれ、img-fluidは画像をレスポンシブにします。適応性を高めるために、col-12 col-sm-6 col-lg-3などのブレークポイントクラスを追加して異なる画面でのカラム数を制御したり、モバイルで二次モジュールを非表示にするためにd-none d-md-blockを使用したりできます。📖 まとめ
- 企業ウェブサイトの完全なモジュールチェーン:Navbar > Hero > 特徴 > 会社概要 > チーム > フォーム > フッター
- コンポーネントの組み合わせ:
card+shadow-sm+rounded-3、navbar fixed-topなど - レスポンシブ:
col-12 col-md-4でカラム数を制御、flex-column flex-md-rowで方向を制御 - アイコン:Bootstrap Iconsが視覚的な階層構造を強化
📝 練習問題
- ⭐ このレッスンのテンプレートに基づいて、個人のポートフォリオホームページを作成します:ブランド名を自分の名前に変更し、ヒーローセクションを「こんにちは、[あなたの名前]です」に変更し、特徴セクションを自分のスキルタグに変更し、チームセクションを自分のプロジェクトの紹介に変更します。
- ⭐⭐ テンプレートに新しい「お客様の声」カルーセルモジュールを追加します。
carousel+cardの組み合わせを使用します。 - ⭐⭐⭐ スクロールアニメーションを追加します:Bootstrapの
data-bs-*属性またはシンプルなCSS@keyframesを使用して、ページモジュールが読み込み時にフェードインするようにします。
前のレッスン: ユーティリティクラス · 次のレッスン: Sassカスタマイズ