Bootstrap V5.3 中文手册

布局方式 Layout

Bootstrap V5.3中文翻译版:布局方式

Bootstrap 布局系统核心概览

Bootstrap 的强大之处在于其成熟、灵活且响应式的布局系统。它提供了一套完整的工具,让开发者能够快速构建各种尺寸屏幕下都能完美呈现的现代化网站。以下是其布局部分的核心组件预览。

1. Breakpoints(断点)

核心概念: 断点是响应式设计的基石。它们是预定义的屏幕尺寸阈值,用于确定布局在不同设备(如手机、平板、桌面)上如何改变。

Bootstrap 采用“移动优先”的设计哲学,意味着样式默认应用于最小的屏幕,然后通过 Media Query(媒体查询)在断点处为更大屏幕逐渐添加修改。

Bootstrap 6 提供了 6 个断点等级(xs 已被隐式包含,无需显式指定):

断点尺寸简写说明
X-Small<576px(默认)针对超小屏设备,如手机(纵向)
Small≥576pxsm针对小屏设备,如手机(横向)
Medium≥768pxmd针对中等屏幕设备,如平板电脑
Large≥992pxlg针对大屏幕设备,如笔记本电脑
Extra large≥1200pxxl针对超大屏幕设备,如台式机
Extra extra large≥1400pxxxl针对超超大屏幕设备

示例应用: 一个类名如 col-md-6 表示:“在中等(md)及以上尺寸的屏幕上,此列占 6 个网格单位;在更小的屏幕上,则堆叠成单列”。

2. Containers(容器)

核心概念: 容器是 Bootstrap 布局中最基本的包裹元素。它的主要作用是容纳、填充和对齐其中的内容

容器是必须的,在使用默认网格系统时,所有行(.row)和列(.col-*)都必须放在容器(.container.container-fluid)内。

  • .container:一个响应式的固定宽度容器。它的 max-width 会在每个断点处改变,以适应不同屏幕。
  • .container-fluid:一个始终充满整个视口宽度(width: 100%)的流式容器。

3. Grid(网格系统)

核心概念: Grid 是 Bootstrap 布局的核心和灵魂。它是一个基于 12 列的灵活系统,用于创建各种复杂的布局。

网格系统由三个核心部分组成:

  1. Container(容器):如上所述,用于包裹整个网格。
  2. Row(行).row,一个水平分组,用于包裹一组列(Column)。它通过负边距(negative margin)来抵消容器的内边距(padding),确保内部的列能正确对齐。
  3. Column(列).col-*,是行的直接子元素,实际的内容放置于此。通过指定占 12 列中的多少份来创建布局。

工作原理: 你通过列类来指定每块内容所占的宽度(例如,3 列 .col-4 的组合,因为 4+4+4=12)。

4. Columns(列类)

列类非常灵活,你可以通过组合断点简写和数字来创建响应式布局。

  • 等宽列:只需使用 .col,Flexbox 会自动让它们等宽。
  • 指定宽度列:使用 .col-{breakpoint}-{number},如 .col-md-6, .col-xl-3
  • 可变宽度列:使用 .col-{breakpoint}-auto,根据内容宽度自动调整列宽。
  • 列换行:如果一行的列数超过 12,多余的列将自动换到新的一行。

5. Gutters(列间隙)

核心概念: Gutters 是列与列之间的内边距(padding),用于控制它们之间的间距。

  • 默认情况下,每一列都有水平的内边距(左右 padding),用于创建间隙。
  • 间隙大小可以通过 CSS 变量(--bs-gutter-x--bs-gutter-y)进行全局定制。
  • 你可以使用 .gx-*(水平间隙)、.gy-*(垂直间隙)和 .g-*(水平垂直间隙)工具类在 .row 上快速调整间隙大小。
  • 也可以通过 .g-0 类完全移除间隙。

6. Utilities(布局工具类)

Bootstrap 提供了大量实用的工具类来辅助微调布局,而无需编写自定义 CSS。

  • 间距(Spacing)mt-3 (margin-top), pb-2 (padding-bottom), mx-auto (水平居中) 等。
  • 显示(Display)d-none (隐藏), d-flex (Flex布局), d-md-block (在中等屏幕显示为块级元素) 等。
  • Flexbox 工具justify-content-between, align-items-center 等,用于快速控制 Flex 容器(.row 本身就是 Flex 容器)的对齐方式。
  • 定位(Position)position-relative, fixed-top 等。

这些工具类大大加快了开发速度。

7. Z-index

核心概念: Bootstrap 中的多个组件(如下拉菜单、固定导航栏、模态框)会使用 z-index 来控制它们的叠放层次,确保它们能正确显示在其他元素之上。

Bootstrap 在 _variables.scss 中预定义了一个 $zindex- 的层级量表(如 zindex-dropdown: 1000;, zindex-sticky: 1020;, zindex-modal: 1050;),确保组件按预期顺序叠加,避免开发者手动设置时发生冲突。

8. CSS Grid(可选布局方式)

核心概念: 从 Bootstrap 5.1 开始,框架提供了可选的 CSS Grid 布局支持。

  • 与默认 Flexbox Grid 的关系:CSS Grid 是一个替代方案,而非替换。默认的网格系统基于 Flexbox,非常适用于一维布局(行或列)。而 CSS Grid 更强大,适用于更复杂的二维布局(同时控制行和列)。
  • 如何使用:Bootstrap 提供了一组以 .grid- 开头的类(如 .grid-container, .grid.g-col-*)来构建 CSS Grid 布局。你需要手动启用相关的 Sass 变量来开启此功能。
  • 选择建议:对于大多数传统的、基于列的页面布局,默认的 Flexbox 网格完全足够且简单易用。对于如杂志、图库等非对称和复杂的布局,可以考虑使用 Bootstrap 的 CSS Grid 实现。

Bootstrap 的布局系统是一个环环相扣的有机整体。从断点定义响应规则,到容器提供包裹,再到基于 GridColumns 的核心结构,辅以 Gutters 控制间距,用 Utilities 进行微调,并通过管理 Z-index 确保层叠顺序,最后还提供了现代化的 CSS Grid 作为高级选项。掌握这些部分,你就能高效地构建出任何想要的响应式页面布局。