您可以直接复制下面的代码,保存为 .html 文件,然后在浏览器中打开,调整窗口大小来查看响应式效果。

bootstrap响应式网页代码
(图片来源网络,侵删)

完整代码示例

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">Bootstrap 响应式网页示例</title>
    <!-- 1. 引入 Bootstrap 的 CSS 文件 (从 CDN) -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet">
    <!-- 可选:添加自定义样式以增强效果 -->
    <style>
        body {
            font-family: 'Microsoft YaHei', sans-serif;
        }
        .navbar {
            margin-bottom: 20px;
        }
        .carousel-item img {
            height: 400px;
            object-fit: cover; /* 确保图片覆盖整个区域,不变形 */
        }
        .feature-box {
            text-align: center;
            margin-bottom: 30px;
        }
        .feature-icon {
            font-size: 3rem;
            color: #0d6efd; /* Bootstrap 的 primary 颜色 */
            margin-bottom: 15px;
        }
        footer {
            background-color: #f8f9fa;
            padding: 20px 0;
            margin-top: 50px;
        }
    </style>
</head>
<body>
    <!-- 顶部导航栏 -->
    <nav class="navbar navbar-expand-lg navbar-dark bg-primary">
        <div class="container">
            <a class="navbar-brand" href="#">我的网站</a>
            <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
                <span class="navbar-toggler-icon"></span>
            </button>
            <div class="collapse navbar-collapse" id="navbarNav">
                <ul class="navbar-nav ms-auto">
                    <li class="nav-item">
                        <a class="nav-link active" aria-current="page" href="#">首页</a>
                    </li>
                    <li class="nav-item">
                        <a class="nav-link" href="#">关于我们</a>
                    </li>
                    <li class="nav-item">
                        <a class="nav-link" href="#">服务</a>
                    </li>
                    <li class="nav-item">
                        <a class="nav-link" href="#">联系我们</a>
                    </li>
                </ul>
            </div>
        </div>
    </nav>
    <div class="container">
        <!-- 轮播图 -->
        <div id="heroCarousel" class="carousel slide mb-5" data-bs-ride="carousel">
            <div class="carousel-indicators">
                <button type="button" data-bs-target="#heroCarousel" data-bs-slide-to="0" class="active" aria-current="true" aria-label="Slide 1"></button>
                <button type="button" data-bs-target="#heroCarousel" data-bs-slide-to="1" aria-label="Slide 2"></button>
                <button type="button" data-bs-target="#heroCarousel" data-bs-slide-to="2" aria-label="Slide 3"></button>
            </div>
            <div class="carousel-inner">
                <div class="carousel-item active">
                    <img src="https://via.placeholder.com/1200x400.png?text=幻灯片+1" class="d-block w-100" alt="幻灯片 1">
                    <div class="carousel-caption d-none d-md-block">
                        <h5>欢迎来到我们的网站</h5>
                        <p>这里是第一个幻灯片的描述文字。</p>
                    </div>
                </div>
                <div class="carousel-item">
                    <img src="https://via.placeholder.com/1200x400.png?text=幻灯片+2" class="d-block w-100" alt="幻灯片 2">
                    <div class="carousel-caption d-none d-md-block">
                        <h5>探索我们的服务</h5>
                        <p>这里是第二个幻灯片的描述文字。</p>
                    </div>
                </div>
                <div class="carousel-item">
                    <img src="https://via.placeholder.com/1200x400.png?text=幻灯片+3" class="d-block w-100" alt="幻灯片 3">
                    <div class="carousel-caption d-none d-md-block">
                        <h5>与我们联系</h5>
                        <p>这里是第三个幻灯片的描述文字。</p>
                    </div>
                </div>
            </div>
            <button class="carousel-control-prev" type="button" data-bs-target="#heroCarousel" 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="#heroCarousel" data-bs-slide="next">
                <span class="carousel-control-next-icon" aria-hidden="true"></span>
                <span class="visually-hidden">Next</span>
            </button>
        </div>
        <!-- 主要内容区:使用 Bootstrap Grid System -->
        <h2 class="text-center mb-4">我们的特色服务</h2>
        <div class="row">
            <!-- 在大屏幕上占3列 (12/4=3),中等屏幕上占6列,小屏幕上占12列 -->
            <div class="col-lg-4 col-md-6 col-sm-12">
                <div class="card h-100">
                    <img src="https://via.placeholder.com/300x200.png?text=服务+图片" 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>
            </div>
            <div class="col-lg-4 col-md-6 col-sm-12">
                <div class="card h-100">
                    <img src="https://via.placeholder.com/300x200.png?text=服务+图片" class="card-img-top" alt="服务图片">
                    <div class="card-body">
                        <h5 class="card-title">服务二</h5>
                        <p class="card-text">这是对第二个服务的详细描述,Bootstrap 的网格系统让布局变得非常简单。</p>
                        <a href="#" class="btn btn-primary">了解更多</a>
                    </div>
                </div>
            </div>
            <div class="col-lg-4 col-md-12 col-sm-12">
                <!-- 注意:在中等屏幕上,这个 div 会占满12列,形成单列布局 -->
                <div class="card h-100">
                    <img src="https://via.placeholder.com/300x200.png?text=服务+图片" 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>
            </div>
        </div>
        <!-- 另一种布局:特色展示 -->
        <h2 class="text-center my-5">为什么选择我们?</h2>
        <div class="row">
            <div class="col-md-4 feature-box">
                <div class="feature-icon">🚀</div>
                <h4>快速高效</h4>
                <p>我们致力于提供最快的服务,确保您的项目按时交付。</p>
            </div>
            <div class="col-md-4 feature-box">
                <div class="feature-icon">💡</div>
                <h4>创新设计</h4>
                <p>拥有专业的设计团队,为您打造独一无二的用户体验。</p>
            </div>
            <div class="col-md-4 feature-box">
                <div class="feature-icon">🛡️</div>
                <h4>安全可靠</h4>
                <p>采用业界领先的技术,保障您的数据和信息安全。</p>
            </div>
        </div>
        <!-- 联系我们表单 -->
        <h2 class="text-center my-5">联系我们</h2>
        <div class="row justify-content-center">
            <div class="col-lg-6">
                <form>
                    <div class="mb-3">
                        <label for="exampleInputEmail1" class="form-label">邮箱地址</label>
                        <input type="email" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp">
                        <div id="emailHelp" class="form-text">我们绝不会将您的邮箱分享给任何人。</div>
                    </div>
                    <div class="mb-3">
                        <label for="exampleInputPassword1" class="form-label">密码</label>
                        <input type="password" class="form-control" id="exampleInputPassword1">
                    </div>
                    <div class="mb-3">
                        <label for="exampleTextarea" class="form-label">留言内容</label>
                        <textarea class="form-control" id="exampleTextarea" rows="3"></textarea>
                    </div>
                    <div class="mb-3 form-check">
                        <input type="checkbox" class="form-check-input" id="exampleCheck1">
                        <label class="form-check-label" for="exampleCheck1">订阅我们的最新资讯</label>
                    </div>
                    <button type="submit" class="btn btn-primary">提交</button>
                </form>
            </div>
        </div>
    </div> <!-- 结束 container -->
    <!-- 页脚 -->
    <footer class="text-center">
        <div class="container">
            <p>&copy; 2025 我的网站. 保留所有权利.</p>
        </div>
    </footer>
    <!-- 2. 引入 Bootstrap 的 JavaScript 文件 (从 CDN) -->
    <!-- 必须在 jQuery 和 Popper.js 之后引入 -->
    <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.8/dist/umd/popper.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.min.js"></script>
</body>
</html>

代码解析与关键响应式特性

核心响应式设置

  • <meta name="viewport" ...>: 这是实现响应式设计的关键,它告诉浏览器如何控制页面的尺寸和缩放。width=device-width 确保页面宽度与设备屏幕宽度一致,initial-scale=1.0 设置初始缩放比例为100%。

导航栏

  • navbar-expand-lg: 这个类表示导航栏在大屏幕上会展开显示所有链接,当屏幕尺寸小于 lg (992px) 时,链接会隐藏,只显示汉堡菜单按钮。
  • navbar-toggler: 这个按钮在小屏幕上出现,点击它会触发 data-bs-target="#navbarNav" 所指向的菜单区域的折叠/展开。
  • ms-auto: 这是一个 Flexbox 辅助类,m 是 margin,s 是 start(左),auto 表示自动将导航链接推到右侧。

轮播图

  • carousel-caption d-none d-md-block: 这是轮播图文字描述的响应式关键。
    • d-none: 默认隐藏。
    • d-md-block: 在中等屏幕及以上显示为块级元素。
    • 这意味着在手机等小屏幕上,图片上的文字描述会自动隐藏,以避免遮挡图片,提升视觉体验。

网格布局 - 最核心的响应式工具

  • container: 提供一个固定宽度的容器,并在不同屏幕尺寸下有最大宽度限制,内容居中。
  • row: 代表一行,相当于一个 flex 容器。
  • *`col-`**: 这是列,是网格系统的核心。
    • col-lg-4: 在大屏幕上,该列占 12/4 = 3 列宽度。
    • col-md-6: 在中等屏幕上,该列占 12/6 = 2 列宽度。
    • col-sm-12: 在小屏幕上,该列占满 12 列,即独占一行。
  • 响应式断点:
    • xs (Extra small, <576px): 默认行为,无需特别指定 col-xs-*
    • sm (Small, ≥576px)
    • md (Medium, ≥768px)
    • lg (Large, ≥992px)
    • xl (Extra large, ≥1200px)
    • xxl (Extra extra large, ≥1400px)
  • 示例布局:
    • 在大屏幕上:col-lg-4 x 3 → 3列布局。
    • 在中等屏幕上:col-md-6 x 2 + col-md-12 → 2列布局,第三个元素换行并占满宽度。
    • 在小屏幕上:col-sm-12 x 3 → 3个元素垂直堆叠,形成单列布局。

卡片

  • card: Bootstrap 的内容容器组件,非常灵活。
  • h-100: 一个高度工具类,让卡片的高度与其父容器(.row)相同,确保所有卡片在视觉上高度一致。

表单

  • form-control: 为输入框、文本域等添加样式,并使其在移动设备上更易于触摸。
  • form-label: 为标签添加适当的间距和样式。
  • form-text: 用于添加输入框下方的辅助说明文本。

JavaScript 依赖

  • Bootstrap 的组件(如轮播图、折叠导航、下拉菜单等)依赖于 JavaScript,必须引入 Bootstrap 的 JS 文件。
  • 注意顺序: Bootstrap 的 JS 依赖于 Popper.js,所以加载顺序通常是:popper.min.js -> bootstrap.min.js

如何使用和修改

  1. 复制代码: 将上面的完整代码复制到一个新的文本文件中。
  2. 保存文件: 将文件命名为 index.html 或任何你喜欢的 .html 后缀名。
  3. 打开文件: 用 Chrome、Firefox 或 Edge 等现代浏览器打开这个文件。
  4. 测试响应式:
    • 桌面端: 直接拖动浏览器窗口的边缘,改变窗口宽度,观察导航栏、网格布局和轮播图文字的变化。
    • 移动端: 打开浏览器开发者工具(按 F12),点击左上角的手机/平板图标,模拟不同的设备尺寸。

这个示例为你提供了一个坚实的基础,你可以基于此添加更多内容和功能,构建出功能完善的响应式网站。

bootstrap响应式网页代码
(图片来源网络,侵删)