第一部分:Bootstrap 模板

Bootstrap 模板指的是已经为你搭建好基础结构和样式的网页文件,你可以直接基于这个模板进行开发,而无需从零开始编写 HTML、CSS 和 JavaScript。

bootstrap 模板 less
(图片来源网络,侵删)

它的核心目标是快速启动项目,让你专注于内容开发,而不是繁琐的布局和样式设置。

为什么使用 Bootstrap 模板?

  • 快速上手:提供响应式布局、导航栏、栅格系统等常见组件,开箱即用。
  • 响应式设计:默认支持移动设备优先,确保你的网站在各种屏幕尺寸下都能良好显示。
  • 跨浏览器兼容:处理了不同浏览器间的样式差异,减少你的调试工作。
  • 组件丰富:内置了大量可复用的 UI 组件,如按钮、模态框、轮播图、下拉菜单等。
  • 一致性:帮助你保持整个项目的设计风格统一。

一个典型的 Bootstrap 模板结构

一个最基础的 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 文件 -->
    <!-- 可以是编译好的 CSS,也可以是 Less 源文件(需要编译器) -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
    <!-- 2. 可选:自定义 CSS 文件 -->
    <!-- 在这里覆盖或添加你自己的样式 -->
    <style>
        body {
            padding-top: 50px; /* 给固定导航栏留出空间 */
        }
        .my-custom-style {
            background-color: #f0f0f0;
        }
    </style>
</head>
<body>
    <!-- 3. 页面内容,使用 Bootstrap 的类名 -->
    <nav class="navbar navbar-expand-lg navbar-dark bg-dark fixed-top">
        <div class="container">
            <a class="navbar-brand" href="#">我的网站</a>
            <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
                <span class="navbar-toggler-icon"></span>
            </button>
            <div class="collapse navbar-collapse" id="navbarNav">
                <ul class="navbar-nav">
                    <li class="nav-item"><a class="nav-link active" href="#">首页</a></li>
                    <li class="nav-item"><a class="nav-link" href="#">lt;/a></li>
                    <li class="nav-item"><a class="nav-link" href="#">联系</a></li>
                </ul>
            </div>
        </div>
    </nav>
    <div class="container mt-5">
        <div class="row">
            <div class="col-md-8">
                <h1>欢迎来到我的网站</h1>
                <p>这是一个使用 Bootstrap 构建的响应式页面模板。</p>
            </div>
            <div class="col-md-4">
                <div class="card my-custom-style">
                    <div class="card-body">
                        <h5 class="card-title">侧边栏</h5>
                        <p class="card-text">这里可以放置一些次要信息。</p>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <!-- 4. 引入 Bootstrap 的 JavaScript 文件 -->
    <!-- Popper.js 是 Bootstrap 的依赖,必须先引入 -->
    <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.0/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>

Bootstrap 模板就是一个成品或半成品的网页框架,你往里面填充内容即可。


第二部分:Bootstrap 的 Less

Less (Leaner Style Sheets) 是一种CSS 预处理器,它扩展了 CSS 的功能,允许你使用变量、嵌套规则、函数、混合(Mixins)等编程特性,让 CSS 更易于维护和扩展。

bootstrap 模板 less
(图片来源网络,侵删)

为什么 Bootstrap 使用 Less?

  • 可维护性:使用变量定义颜色、字体、间距等,修改一处即可全局生效。
  • 可扩展性:你可以轻松地覆盖 Bootstrap 的默认变量,定制出属于你自己的主题。
  • 代码组织:通过嵌套规则,让 CSS 结构更清晰,与 HTML 结构对应。
  • 减少重复:通过混合(Mixins)复用 CSS 代码块,避免编写大量重复样式。

Less 的核心特性(以 Bootstrap 为例)

a) 变量 Less 允许你定义变量,用于存储颜色、字体、尺寸等值。

// variables.less
@primary-color: #007bff;
@border-radius: .25rem;
@font-family-base: 'Helvetica Neue', Arial, sans-serif;
// 在其他地方使用变量
.btn-primary {
    background-color: @primary-color;
    border-radius: @border-radius;
    font-family: @font-family-base;
}

b) 嵌套 CSS 选择器可以嵌套在父选择器内部,使代码更整洁。

// nav.less
.navbar {
    background-color: #333;
    .navbar-brand {
        font-weight: bold;
        color: white;
        &:hover { // & 表示父选择器,即 .navbar-brand
            color: @primary-color;
        }
    }
    .nav-item {
        .nav-link {
            color: #ddd;
        }
    }
}

c) 混合 可以定义一个可复用的样式块,并在其他地方调用它。

// mixins.less
.center-block() {
    display: block;
    margin-left: auto;
    margin-right: auto;
}
.btn-custom() {
    padding: .5rem 1rem;
    border: 1px solid transparent;
    border-radius: @border-radius;
    cursor: pointer;
}
// 使用混合
.my-component {
    .center-block();
    .btn-custom();
    background-color: @primary-color;
    color: white;
}

d) 函数与运算 可以在 Less 中进行数学运算。

bootstrap 模板 less
(图片来源网络,侵删)
@base-spacing: 10px;
@component-spacing: @base-spacing * 2;
.component {
    margin: @component-spacing;
    padding: @base-spacing;
}

Bootstrap 的 Less 文件结构

Bootstrap 的源代码就是用 Less 编写的,当你下载 Bootstrap 的源码时,你会看到一个 less/ 目录,里面包含了所有样式文件的源代码。

bootstrap/
├── less/
│   ├── alerts.less          // 警告框组件
│   ├── buttons.less         // 按钮组件
│   ├── carousel.less        // 轮播图组件
│   ├── dropdowns.less       // 下拉菜单
│   ├── forms.less           // 表单
│   ├── grid.less            // 栅格系统(核心)
│   ├── mixins.less          // 核心混合文件
│   ├── navbar.less          // 导航栏
│   ├── tables.less          // 表格
│   ├── theme.less           // 主题变量和样式
│   ├── variables.less        // **核心变量文件**
│   └── ... (其他组件)
├── js/                      // JavaScript 源码
└── ... (其他文件)

variables.less 是最关键的文件,它定义了 Bootstrap 的所有默认颜色、字体、间距等,如果你想定制 Bootstrap,主要就是修改这个文件。


第三部分:两者如何结合使用?

Less 是工具,模板是结果,Less 用来生成模板中使用的 CSS 文件。

工作流程:

  1. 获取源码:从 GitHub 下载 Bootstrap 的源码(包含 Less 文件)。
  2. 定制 Less
    • 复制 less/variables.less 文件。
    • 修改 variables.less 中的变量,
      // 修改主色调
      @primary-color: #ff6b6b;
      // 修改字体
      @font-family-base: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  3. 编译 Less
    • 使用 Less 编译器(如 VS Code 的插件、命令行工具 lessc 或在线编译器)将 Less 文件编译成 CSS 文件。
    • 编译时,Bootstrap 会读取你的 variables.less,并将所有变量替换为你定义的值,最终生成一个 bootstrap.css 文件。
  4. 使用模板
    • 在你的 HTML 模板中,不再引入 Bootstrap 官方的 CSS,而是引入你自己编译好的 bootstrap.css
    • 现在你所有的页面都会使用你自定义的颜色和字体。

示例:自定义编译后的模板

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <!-- 引入你自己编译的、带有自定义主题的 CSS -->
    <link href="path/to/your/custom-bootstrap.css" rel="stylesheet">
    <style>
        /* 你的自定义样式 */
    </style>
</head>
<body>
    <!-- 页面内容,和之前一样 -->
    <nav class="navbar navbar-expand-lg navbar-dark bg-dark">...</nav>
    ...
</body>
</html>

总结与对比

特性 Bootstrap 模板 Bootstrap Less
本质 一个 HTML/CSS/JS 的成品框架 一种 CSS 预处理器源代码
目的 快速开发,直接拿来用 定制和扩展 Bootstrap 的样式
使用方式 在 HTML 中通过 <link> 引入 CSS 在 Less 文件中修改变量和规则,然后编译成 CSS
面向对象 前端开发者,快速构建页面 高级开发者/设计师,深度定制主题
关系 模板是 Less 编译后的产物之一,你可以使用官方模板,也可以用 Less 自定义后再生成自己的模板。

  • 快速做个网站?直接用 Bootstrap 模板(CDN 版本最快)。
  • 打造一个专属品牌,有自己的颜色和风格?那就需要使用 Less 来定制 Bootstrap 的源码,然后编译成自己的 CSS 再用在模板中。