Bootstrap5基础布局:容器、行、列嵌套使用指南

在前端开发中,页面布局是基础也是核心。Bootstrap 5 作为主流的前端框架,提供了一套简洁高效的响应式布局系统,让我们能快速构建美观且适配不同设备的页面。今天我们就来学习 Bootstrap 5 中最基础的布局结构——容器(Container)、行(Row)、列(Column),以及它们的嵌套使用方法。

一、容器(Container):布局的“盒子”

容器是 Bootstrap 布局的基础,它的作用是包裹页面内容,控制内容的宽度并使其居中对齐。就像给内容套了一个“包装盒”,让内容不会在浏览器中撑满全屏,同时保持美观的间距。

1. 常用容器类

Bootstrap 5 提供了两种最常用的容器类:
- .container:固定宽度的容器,在不同屏幕尺寸下会自动调整最大宽度,始终居中显示内容。例如:
- 小屏幕(sm)以下,宽度为 100%;
- 中等屏幕(md)以上,宽度为 768px;
- 大屏幕(lg)以上,宽度为 992px,依此类推。
- .container-fluid:全宽容器,宽度始终为 100%,没有固定边界,内容会从屏幕左侧到右侧满屏显示。

2. 容器示例

<!-- 固定宽度容器 -->
<div class="container">
  <p>我是居中的固定宽度内容</p>
</div>

<!-- 全宽容器 -->
<div class="container-fluid">
  <p>我是全屏宽度内容</p>
</div>

二、行(Row):列的“水平载体”

是用来包裹列的横向容器,它通过负边距抵消容器的内边距,让列能“紧贴”容器的左右边缘,实现紧密排列。行必须直接嵌套在容器内部,不能单独使用。

1. 行的核心作用

  • 提供网格系统的“横向轴”,让列在一行内水平排列;
  • 通过display: flex特性,实现列的自动等高、分布对齐等效果。

2. 行的使用规则

  • 行必须嵌套在容器(.container.container-fluid)内;
  • 行内部只能包含列(.col-*类),不能直接放置其他内容;
  • 每行最多包含 12 列(Bootstrap 5 基于 12 列网格系统)。

3. 行示例

<div class="container">
  <div class="row"> <!-- 行必须在容器内 -->
    <div class="col">列1</div>
    <div class="col">列2</div>
    <div class="col">列3</div>
  </div>
</div>

三、列(Column):12 列网格的“单元格”

Bootstrap 5 的列基于 12 列网格系统,每列的宽度通过“列数”决定(总列数为 12)。列的类名格式为 col-[断点]-[列数],例如 col-md-4 表示“在中等屏幕及以上,该列占 4 列宽度”。

1. 断点与列命名规则

  • 断点:Bootstrap 5 的屏幕断点有 5 种:
  • sm(576px):小屏幕
  • md(768px):中等屏幕
  • lg(992px):大屏幕
  • xl(1200px):超大屏幕
  • xxl(1400px):极大屏幕
  • 列数:12 列网格中,每列的宽度占比 = 当前列数 / 12。例如 col-md-4 占 4/12 = 33.33% 宽度。

2. 列示例

横向排列(基础)

<!-- 一行内放 3 列,每列占 4 列 -->
<div class="container">
  <div class="row">
    <div class="col-md-4">占 4 列(中等屏幕以上)</div>
    <div class="col-md-4">占 4 列</div>
    <div class="col-md-4">占 4 列</div>
  </div>
</div>

响应式排列:不同断点下显示不同列数(如手机端单列,平板端两列):

<div class="container">
  <div class="row">
    <!-- 小屏幕(sm)及以上占 6 列,手机端(<576px)占 12 列 -->
    <div class="col-sm-6 col-12">手机端单列,平板端双列</div>
    <div class="col-sm-6 col-12">手机端单列,平板端双列</div>
  </div>
</div>

四、列嵌套:在列中再次布局

当需要在某个列内部再进行布局时(即“大列套小列”),就需要用到列嵌套。嵌套布局的核心是:在目标列中再次使用 .row.col-* 组合

1. 嵌套规则

  • 嵌套的 .row 放在父列内部;
  • 内部 .row 同样遵循 12 列网格,列数总和不超过 12;
  • 父列的宽度不影响内部嵌套的行和列(负边距会自动抵消)。

2. 嵌套示例

需求:一个 8 列的大列,内部再分成两个 6 列的小列;右侧 4 列单独显示。

<div class="container">
  <div class="row">
    <!-- 父列(占 8 列) -->
    <div class="col-md-8">
      <div class="row"> <!-- 嵌套行 -->
        <div class="col-md-6">小列1(父列内占 6 列)</div>
        <div class="col-md-6">小列2(父列内占 6 列)</div>
      </div>
    </div>
    <!-- 子列(占 4 列) -->
    <div class="col-md-4">右侧列(单独显示)</div>
  </div>
</div>

效果:父列(8 列)内部用嵌套行分成两个 6 列(共 12 列),右侧 4 列独立显示,整体每行列数总和为 12(8+4)。

五、总结

Bootstrap 5 的布局核心是“容器包裹行,行包裹列,列内可嵌套”。关键规则如下:
1. 容器.container/.container-fluid)是布局的“大盒子”,固定或全宽;
2. .row)是容器内的“横向行”,包裹列,必须在容器内;
3. .col-*)是核心“单元格”,基于 12 列网格系统,通过断点控制响应式;
4. 嵌套:在列内用 .row 再次包裹小列,实现多层级布局。

动手实践是掌握的关键!试着用上述方法搭建一个简单页面,调整不同断点的列数,感受 Bootstrap 5 布局的便捷。

小夜