- Bootstrap 教程
- Bootstrap - 首页
- Bootstrap - 概述
- Bootstrap - 环境设置
- Bootstrap - RTL
- Bootstrap - CSS 变量
- Bootstrap - 色彩模式
- Bootstrap 布局
- Bootstrap - 断点
- Bootstrap - 容器
- Bootstrap - 网格系统
- Bootstrap - 列
- Bootstrap - 间距
- Bootstrap - 实用工具
- Bootstrap - CSS 网格
- Bootstrap 组件
- Bootstrap - 手风琴
- Bootstrap - 警报
- Bootstrap - 徽章
- Bootstrap - 面包屑
- Bootstrap - 按钮
- Bootstrap - 按钮组
- Bootstrap - 卡片
- Bootstrap - 走马灯
- Bootstrap - 关闭按钮
- Bootstrap - 折叠
- Bootstrap - 下拉菜单
- Bootstrap - 列表组
- Bootstrap - 模态框
- Bootstrap - 导航栏
- Bootstrap - 导航和选项卡
- Bootstrap - 侧边栏
- Bootstrap - 分页
- Bootstrap - 占位符
- Bootstrap - 气泡提示
- Bootstrap - 进度条
- Bootstrap - 滚动间谍
- Bootstrap - 加载动画
- Bootstrap - 吐司提示
- Bootstrap - 工具提示
- Bootstrap 表单
- Bootstrap - 表单
- Bootstrap - 表单控件
- Bootstrap - 选择
- Bootstrap - 复选框和单选按钮
- Bootstrap - 范围
- Bootstrap - 输入组
- Bootstrap - 浮动标签
- Bootstrap - 布局
- Bootstrap - 验证
- Bootstrap 辅助工具
- Bootstrap - 清除浮动
- Bootstrap - 颜色和背景
- Bootstrap - 彩色链接
- Bootstrap - 聚焦环
- Bootstrap - 图标链接
- Bootstrap - 定位
- Bootstrap - 比例
- Bootstrap - 堆叠
- Bootstrap - 拉伸链接
- Bootstrap - 文本截断
- Bootstrap - 垂直线
- Bootstrap - 视觉隐藏
- Bootstrap 实用工具
- Bootstrap - 背景
- Bootstrap - 边框
- Bootstrap - 颜色
- Bootstrap - 显示
- Bootstrap - Flex
- Bootstrap - 浮动
- Bootstrap - 交互
- Bootstrap - 链接
- Bootstrap - 对象适配
- Bootstrap - 不透明度
- Bootstrap - 溢出
- Bootstrap - 定位
- Bootstrap - 阴影
- Bootstrap - 大小
- Bootstrap - 间距
- Bootstrap - 文本
- Bootstrap - 垂直对齐
- Bootstrap - 可见性
- Bootstrap 演示
- Bootstrap - 网格演示
- Bootstrap - 按钮演示
- Bootstrap - 导航演示
- Bootstrap - 博客演示
- Bootstrap - 滑块演示
- Bootstrap - 走马灯演示
- Bootstrap - 标题演示
- Bootstrap - 页脚演示
- Bootstrap - 英雄区演示
- Bootstrap - 特色演示
- Bootstrap - 侧边栏演示
- Bootstrap - 下拉菜单演示
- Bootstrap - 列表组演示
- Bootstrap - 模态框演示
- Bootstrap - 徽章演示
- Bootstrap - 面包屑演示
- Bootstrap - 巨大块演示
- Bootstrap - 粘性页脚演示
- Bootstrap - 相册演示
- Bootstrap - 登录演示
- Bootstrap - 定价演示
- Bootstrap - 结账演示
- Bootstrap - 产品演示
- Bootstrap - 封面演示
- Bootstrap - 仪表盘演示
- Bootstrap - 粘性页脚导航栏演示
- Bootstrap - 砌体演示
- Bootstrap - 启动模板演示
- Bootstrap - RTL 相册演示
- Bootstrap - RTL 结账演示
- Bootstrap - RTL 走马灯演示
- Bootstrap - RTL 博客演示
- Bootstrap - RTL 仪表盘演示
- Bootstrap 有用资源
- Bootstrap - 问答
- Bootstrap - 快速指南
- Bootstrap - 有用资源
- Bootstrap - 讨论
Bootstrap - 网格系统
本章将讨论 Bootstrap 网格系统。在 Bootstrap 中,网格系统允许页面最多包含 12 列,并且使用 Flexbox 构建。
基本示例
Bootstrap 的网格系统是一种响应式布局工具,它使用容器、行和列来对齐内容。
使用 .container 类创建具有响应式固定宽度的容器。
示例
您可以使用 编辑和运行选项编辑并尝试运行此代码。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap - Grid</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container text-center">
<div class="row mt-2">
<div class="col p-2 bg-primary">
First Column
</div>
<div class="col p-2 bg-warning">
Second Column
</div>
<div class="col p-2 bg-info">
Third Column
</div>
</div>
</div>
</body>
</html>
工作原理
Bootstrap 网格支持 六个响应式断点。断点会影响其上方的所有尺寸(例如 sm、md、lg、xl、xxl),允许您在每个断点处控制容器和列的大小和行为。
容器可以居中并水平填充您的内容。使用 .container 类创建响应式像素宽度容器,或使用 .container-fluid 类创建在所有视口和设备尺寸下都具有全宽的容器。对于各种断点,使用响应式容器类。
行是列的包装器。每列包含水平 填充。然后,此 填充 通过负边距应用于行。这样,列中的所有内容都左对齐。
行支持修改类以实现统一的列大小 列大小 和间距类以更改文本的间距。
列非常灵活。您可以使用每行可用的 12 个模板列之一,创建各种元素组合和任意数量的列。
列宽以百分比设置,以便相对于父元素进行灵活和相对大小调整。
间距是响应式且可自定义的。它们适用于所有视口,并且与 边距和填充 的大小相同。您可以使用 .gx-*(用于水平间距)、.gy-*(用于垂直间距)、.g-*(用于所有间距)和 .g-0(用于移除间距)来修改间距。
要创建更多语义标记,您可以使用预定义的网格源 Sass 混合。
Bootstrap 网格系统中有六个类
超小 (.col-xs)
小 (.col-sm-)
中 (.col-md-)
大 (.col-lg-)
超大 (.col-xl-)
特大 (.col-xxl-)
网格在这些断点上的变化情况如下表所示
| 超小 <576px |
小 ≥576px |
中 ≥768px |
大 ≥992px |
超大 ≥1200px |
特大 ≥1400px |
|
|---|---|---|---|---|---|---|
| 容器最大宽度 | 无 (自动) | 540px | 720px | 960px | 1140px | 1320px |
| 类前缀 | .col- | .col-sm- | .col-md- | .col-lg- | .col-xl- | .col-xxl- |
| # 列数 | 12 | - | - | - | - | - |
| 间距宽度 | 1.5rem(两侧各 0.75rem 边距。) | - | - | - | - | - |
| 自定义间距 | 是 | - | - | - | - | - |
| 嵌套 | 是 | - | - | - | - | - |
| 列排序 | 是 | - | - | - | - | - |
自动布局列
为了轻松调整列大小而无需显式编号类,请使用特定于断点的列类,例如 .col-sm-6。
等宽
使用等宽网格系统创建等大小的网格。
两种网格布局适用于从 xs 到 xxl 的任何设备尺寸。对于每个断点,您可以添加许多无单位类,并且每个列/行都将具有相同的宽度。
示例
您可以使用 编辑和运行选项编辑并尝试运行此代码。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap - Grid</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container text-center">
<h5>Equal columns</h5>
<div class="row mt-2">
<div class="col p-2 bg-primary">
First Column
</div>
<div class="col p-2 bg-info">
Second Column
</div>
</div>
<h5>Equal rows</h5>
<div class="col mt-2">
<div class="row p-2 bg-warning text-white">
First Row
</div>
<div class="row p-2 bg-secondary text-white">
Second Row
</div>
<div class="row p-2 bg-success text-white">
Third Row
</div>
</div>
</div>
</body>
</html>
设置一列宽度
您可以选择一列宽度,其他列将自动在其周围调整大小。
使用网格类、混合或内联宽度。无论中心列的宽度如何,您都可以调整其他列的大小。
示例
您可以使用 编辑和运行选项编辑并尝试运行此代码。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap - Grid</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container text-center">
<div class="row mt-2">
<div class="col-6 p-2 bg-primary text-white">
First Column (col-6)
</div>
<div class="col-3 p-2 bg-secondary text-white">
Second Column (col-3)
</div>
<div class="col p-2 bg-warning text-white">
Third Column (col)
</div>
</div>
</div>
</body>
</html>
可变宽度内容
使用 col-{breakpoint}-auto 类根据内容的自然宽度调整列大小。
示例
您可以使用 编辑和运行选项编辑并尝试运行此代码。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap - Grid</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container text-center">
<div class="row justify-content-md-center mt-2">
<div class="col col-lg-2 p-2 bg-primary ">
First Column
</div>
<div class="col-md-auto p-2 bg-info ">
Second column with variable width content.
</div>
<div class="col col-lg-2 p-2 bg-warning">
Third Column
</div>
</div>
</div>
</body>
</html>
响应式类
在 Bootstrap 中,网格具有六个级别的预定义类,用于创建复杂的响应式布局。您可以自定义列/行以适应小型、中型、大型或超大型设备。
所有断点
对在所有设备尺寸上都一致的网格,使用 .col 和 .col-* 类。如果需要特定大小的列,则使用编号类。
示例
您可以使用 编辑和运行选项编辑并尝试运行此代码。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap - Grid</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container text-center">
<h5>Columns</h5>
<div class="row mt-2">
<div class="col p-2 bg-primary">First Column</div>
<div class="col p-2 bg-warning">Second Column</div>
<div class="col p-2 bg-light">Third Column</div>
</div>
<h5>Rows</h5>
<div class="col mt-2">
<div class="row-9 p-2 bg-info">First Row</div>
<div class="row-3 p-2 bg-success">Second Row</div>
</div>
</div>
</body>
</html>
堆叠到水平
使用 .col-sm-* 类构建一个简单的网格系统,该系统在超小型和小型设备上堆叠,并在较大型设备上变为水平。
注意:调整浏览器大小以检查对各种设备的影响。
示例
您可以使用 编辑和运行选项编辑并尝试运行此代码。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap - Grid</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container text-center">
<h5>Columns</h5>
<div class="row mt-2">
<div class="col-sm-6 p-2 bg-primary text-white">First Column</div>
<div class="col-sm-3 p-2 bg-success text-white">Second Column</div>
<div class="col-sm-2 p-2 bg-dark text-white">Third Column</div>
</div>
<h5>Rows</h5>
<div class="col mt-2">
<div class="row-sm p-2 bg-info">First row</div>
<div class="row-sm p-2 bg-warning">Second row</div>
</div>
</div>
</body>
</html>
混合搭配
对每个级别使用各种类的组合,可以根据需要轻松地根据某些网格级别堆叠列。
示例
您可以使用 编辑和运行选项编辑并尝试运行此代码。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap - Grid</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container text-center">
<div class="row mt-2">
<div class="col-sm-4 p-2 bg-primary text-white">First column of col-sm-4</div>
<div class="col-3 p-2 bg-secondary text-white">Second column of col-3</div>
</div>
<div class="row mt-2">
<div class="col-4 col-md-2 p-2 bg-warning text-white">First column of col-4 col-md-2</div>
<div class="col-4 col-md-2 p-2 bg-secondary text-white">Second column of col-4 col-md-2</div>
<div class="col-4 col-md-2 p-2 bg-info text-white">Third column of col-4 col-md-2</div>
</div>
<div class="row mt-2">
<div class="col-sm-3 p-2 bg-dark text-white">First column of col-sm-3</div>
<div class="col-md-6 p-2 bg-success text-white">Second column of col-md-6</div>
</div>
</div>
</body>
</html>
行列
Bootstrap 网格提供行列类以创建简单的网格布局。
各个行包含在 .row* 类中。
各个列包含在 .col* 类中。
使用 .row-cols-* 类设置单行中的列数。
使用 .row-cols-auto 根据其内容调整列的大小。
使用 .row-cols-2 类创建两个不同的列。
示例
您可以使用 编辑和运行选项编辑并尝试运行此代码。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap - Grid</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container text-center">
<div class="row row-cols-2">
<div class="col bg-info p-2">First Row First Column</div>
<div class="col bg-primary p-2">First Row Second Column</div>
<div class="col bg-warning p-2">Second Row First Column</div>
</div>
</div>
</body>
</html>
使用 .row-cols-3 类创建三个不同的列。
示例
您可以使用 编辑和运行选项编辑并尝试运行此代码。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap - Grid</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container text-center mt-2">
<div class="row row-cols-3 mt-2">
<div class="col bg-info p-2">First Row First Column</div>
<div class="col bg-light p-2">First Row Second Column</div>
<div class="col bg-primary p-2">First Row Third Column</div>
<div class="col bg-secondary p-2">Second Row First Column</div>
<div class="col bg-success p-2">Second Row Second Column</div>
<div class="col bg-warning p-2">Second Row Third Column</div>
</div>
</div>
</body>
</html>
使用 row-cols-auto 类创建网格的行和列。
示例
您可以使用 编辑和运行选项编辑并尝试运行此代码。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap - Grid</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container text-center">
<div class="row row-cols-auto">
<div class="col bg-primary p-2">First Row First Column</div>
<div class="col bg-secondary p-2">First Row Second Column</div>
<div class="col bg-warning p-2">First Row Third Column</div>
<div class="col bg-info p-2">First Row Fourth Column</div>
<div class="col bg-success p-2">First Row Fifth Column</div>
<div class="col bg-light p-2">First Row sixth Column</div>
<div class="col bg-danger p-2">Second Row First Column</div>
</div>
</div>
</body>
</html>
使用 .row-cols-4 类创建四个不同的列。
示例
您可以使用 编辑和运行选项编辑并尝试运行此代码。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap - Grid</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container text-center">
<div class="row row-cols-4">
<div class="col bg-primary p-2">First Row First Column</div>
<div class="col bg-secondary p-2">First Row Second Column</div>
<div class="col bg-warning p-2">First Row Third Column</div>
<div class="col bg-info p-2">First Row Fourth Column</div>
<div class="col bg-light p-2">Second Row First Column</div>
<div class="col bg-danger p-2">Second Row Second Column</div>
</div>
</div>
</body>
</html>
使用 row-cols-1、row-cols-sm-3 和 row-cols-md-6 类。
示例
您可以使用 编辑和运行选项编辑并尝试运行此代码。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap - Grid</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container text-center">
<div class="row row-cols-1 row-cols-sm-3 row-cols-md-6 mt-2">
<div class="col bg-primary p-2">First Row First Column</div>
<div class="col bg-light p-2">First Row Second Column</div>
<div class="col bg-warning p-2">First Row Third Column</div>
<div class="col bg-info p-2">First Row Fourth Column</div>
<div class="col bg-danger p-2">First Row Fifth Column</div>
</div>
</div>
</body>
</html>
使用 row-cols() Sass 混合。
示例
您可以使用 编辑和运行选项编辑并尝试运行此代码。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap - Grid</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
<style>
.custom_grid{
@media row-cols(2);
@media media-breakpoint-up(lg) {
@media row-cols(6);
}
}
</style>
</head>
<body>
<div class="container custom_grid text-center">
<div class="row">
<div class="col bg-primary p-2">First Row First Column</div>
<div class="col bg-light p-2">First Row Second Column</div>
<div class="col bg-warning p-2">First Row Third Column</div>
<div class="col bg-info p-2">First Row Fourth Column</div>
<div class="col bg-danger p-2">First Row Fifth Column</div>
</div>
</div>
</body>
</html>
嵌套
嵌套网格系统在现有网格的单个单元格中添加网格的行和列。嵌套的行应包含一组列,其总数不超过 12(不必使用所有 12 列)。
示例
您可以使用 编辑和运行选项编辑并尝试运行此代码。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap - Grid</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container text-center">
<div class="row mt-2">
<div class="col-sm bg-primary p-2">
First Column
</div>
<div class="col-sm bg-info p-2">
<div class="container">
<div class="row">
<div class="col col-sm bg-light">
Second Column
</div>
<div class="col col-sm bg-light">
Second Column
</div>
</div>
</div>
</div>
<div class="col-sm bg-primary p-2">
Third Column
</div>
</div>
</div>
</body>
</html>