Bootstrap 简明教程
Bootstrap - Flex
本章讨论了 flex 实用程序。 .flex 实用程序类有助于快速管理网格列、导航、组件等的布局、对齐和大小。
Enable flex behaviors
利用 display 实用程序建立一个 flexbox 容器并将直接子元素转换为 flex 项,允许通过其他 flex 属性进一步自定义 flex 容器和项。
让我们看一个灵活容器和一个行内灵活容器的示例:
Example
你可以编辑并尝试运行此代码,使用 编辑和运行 选项。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Flex</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/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container mt-3">
<h4>Flex utilities</h4>
<div class="d-flex p-4 bg-info">A simple flexbox container!</div>
<div class="d-inline-flex p-4 bg-warning">An inline flexbox container!</div>
</body>
</html>
类 .d-flex 和 .d-inline-flex 也提供了适用于不同屏幕大小的变量。
-
.d-flex
-
.d-inline-flex
-
.d-sm-flex
-
.d-sm-inline-flex
-
.d-md-flex
-
.d-md-inline-flex
-
.d-lg-flex
-
.d-lg-inline-flex
-
.d-xl-flex
-
.d-xl-inline-flex
-
.d-xxl-flex
-
.d-xxl-inline-flex
Direction
使用方向工具,可以设置灵活容器中灵活项的方向。以下是 Bootstrap 提供的方向工具:
-
.flex-row - 设置水平方向,这也是浏览器的默认设置。
-
.flex-row-reverse - 从相反的侧边开始水平方向。
-
.flex-column - 设置垂直方向。
-
.flex-column-reverse - 从相反的侧边开始垂直方向。
让我们看一个方向工具类的示例:
Example
你可以编辑并尝试运行此代码,使用 编辑和运行 选项。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Flex</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/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container mt-3">
<h4>Flex utilities - direction (row & column)</h4>
<div class="d-flex flex-row mb-4 bg-info border border-dark">
<div class="p-3 border border-dark">Row One</div>
<div class="p-3 border border-dark">Row Two</div>
<div class="p-3 border border-dark">Row Three</div>
</div>
<div class="d-flex flex-row-reverse bg-warning border border-success">
<div class="p-3 border border-success">Row Four</div>
<div class="p-3 border border-success">Row Five</div>
<div class="p-3 border border-success">Row Six</div>
</div>
<div class="d-flex flex-column mb-3 bg-danger-subtle bg-gradient border border-dark">
<div class="p-3 border border-dark">Column One</div>
<div class="p-3 border border-dark">Column Two</div>
<div class="p-3 border border-dark">Column Three</div>
</div>
<div class="d-flex flex-column-reverse bg-light border border-dark">
<div class="p-3 border border-dark">Column Four</div>
<div class="p-3 border border-dark">Column Five</div>
<div class="p-3 border border-dark">Column Six</div>
</div>
</body>
</html>
类 .flex-direction 也提供了适用于不同屏幕大小的变量:
-
.flex-row
-
.flex-row-reverse
-
.flex-column
-
.flex-column-reverse
-
.flex-sm-row
-
.flex-sm-row-reverse
-
.flex-sm-column
-
.flex-sm-column-reverse
-
.flex-md-row
-
.flex-md-row-reverse
-
.flex-md-column
-
.flex-md-column-reverse
-
.flex-lg-row
-
.flex-lg-row-reverse
-
.flex-lg-column
-
.flex-lg-column-reverse
-
.flex-xl-row
-
.flex-xl-row-reverse
-
.flex-xl-column
-
.flex-xl-column-reverse
-
.flex-xxl-row
-
.flex-xxl-row-reverse
-
.flex-xxl-column
-
.flex-xxl-column-reverse
Justify content
.justify-content 工具类用于更改主轴上灵活项的对齐方式,即 x -axis 为起始, y-axis 为 flex-direction: column 的情况。
可用的不同选项有:
-
start
-
end
-
center
-
between
-
around
-
evenly
让我们看一个对齐内容类的示例:
Example
你可以编辑并尝试运行此代码,使用 编辑和运行 选项。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Flex</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/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container mt-3">
<h4>Flex utilities - Justify content</h4>
<div class="d-flex justify-content-start mb-4 bg-info border border-dark">
<div class="p-3 border border-dark">Row One</div>
<div class="p-3 border border-dark">Row Two</div>
<div class="p-3 border border-dark">Row Three</div>
</div>
<div class="d-flex justify-content-end mb-4 bg-warning border border-success">
<div class="p-3 border border-success">Row Four</div>
<div class="p-3 border border-success">Row Five</div>
<div class="p-3 border border-success">Row Six</div>
</div>
<div class="d-flex justify-content-center mb-4 bg-danger-subtle bg-gradient border border-dark">
<div class="p-3 border border-dark">Column One</div>
<div class="p-3 border border-dark">Column Two</div>
<div class="p-3 border border-dark">Column Three</div>
</div>
<div class="d-flex justify-content-between mb-4 bg-light border border-dark">
<div class="p-3 border border-dark">Column Four</div>
<div class="p-3 border border-dark">Column Five</div>
<div class="p-3 border border-dark">Column Six</div>
</div>
<div class="d-flex justify-content-around mb-4 bg-success-subtle bg-gradient border border-dark">
<div class="p-3 border border-dark">Column Four</div>
<div class="p-3 border border-dark">Column Five</div>
<div class="p-3 border border-dark">Column Six</div>
</div>
<div class="d-flex justify-content-evenly mb-4 bg-primary-subtle bg-gradient border border-dark">
<div class="p-3 border border-dark">Column Four</div>
<div class="p-3 border border-dark">Column Five</div>
<div class="p-3 border border-dark">Column Six</div>
</div>
</div>
</body>
</html>
类 .justify-content 也提供了适用于不同屏幕大小的变量:
-
.justify-content-start
-
.justify-content-end
-
.justify-content-center
-
.justify-content-between
-
.justify-content-around
-
.justify-content-evenly
-
.justify-content-sm-start
-
.justify-content-sm-end
-
.justify-content-sm-center
-
.justify-content-sm-between
-
.justify-content-sm-around
-
.justify-content-sm-evenly
-
.justify-content-md-start
-
.justify-content-md-end
-
.justify-content-md-center
-
.justify-content-md-between
-
.justify-content-md-around
-
.justify-content-md-evenly
-
.justify-content-lg-start
-
.justify-content-lg-end
-
.justify-content-lg-center
-
.justify-content-lg-between
-
.justify-content-lg-around
-
.justify-content-lg-evenly
-
.justify-content-xl-start
-
.justify-content-xl-end
-
.justify-content-xl-center
-
.justify-content-xl-between
-
.justify-content-xl-around
-
.justify-content-xl-evenly
-
.justify-content-xxl-start
-
.justify-content-xxl-end
-
.justify-content-xxl-center
-
.justify-content-xxl-between
-
.justify-content-xxl-around
-
.justify-content-xxl-evenly
Align items
为了更改一个灵活盒容器中灵活项的对齐方式,请使用 align-items. 工具类。
Bootstrap 中可用的选项如下:
-
start
-
end
-
center
-
baseline
-
stretch (browser default)
让我们看一个对齐项工具类的示例:
Example
你可以编辑并尝试运行此代码,使用 编辑和运行 选项。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Flex</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/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container mt-3">
<h4>Flex utilities - align items</h4>
<div class="d-flex align-items-start flex-row border bg-light mb-4" style="height:150px;">
<div class="border border-dark p-2 text-bg-success">
Item 1
</div>
<div class="border border-dark p-2 text-bg-primary">
Item 2
</div>
<div class="border border-dark p-2 text-bg-danger">
Item 3
</div>
</div>
<div class="d-flex align-items-end flex-row border bg-light" style="height:150px;">
<div class="border border-dark p-2 bg-info-subtle">
Item 1
</div>
<div class="border border-dark p-2 bg-secondary-subtle">
Item 2
</div>
<div class="border border-dark p-2 bg-warning-subtle">
Item 3
</div>
</div>
<div class="d-flex align-items-center flex-row border bg-light" style="height:150px;">
<div class="border border-dark p-2 text-bg-info">
Item 1
</div>
<div class="border border-dark p-2 text-bg-secondary">
Item 2
</div>
<div class="border border-dark p-2 text-bg-warning">
Item 3
</div>
</div>
</body>
</html>
类 .align-items 也提供了适用于不同屏幕大小的变量:
-
.align-items-start
-
.align-items-end
-
.align-items-center
-
.align-items-baseline
-
.align-items-stretch
-
.align-items-sm-start
-
.align-items-sm-end
-
.align-items-sm-center
-
.align-items-sm-baseline
-
.align-items-sm-stretch
-
.align-items-md-start
-
.align-items-md-end
-
.align-items-md-center
-
.align-items-md-baseline
-
.align-items-md-stretch
-
.align-items-lg-start
-
.align-items-lg-end
-
.align-items-lg-center
-
.align-items-lg-baseline
-
.align-items-lg-stretch
-
.align-items-xl-start
-
.align-items-xl-end
-
.align-items-xl-center
-
.align-items-xl-baseline
-
.align-items-xl-stretch
-
.align-items-xxl-start
-
.align-items-xxl-end
-
.align-items-xxl-center
-
.align-items-xxl-baseline
-
.align-items-xxl-stretch
Align self
为了更改一个容器中单个灵活盒项的对齐方式,请使用 align-self 工具类。此工具类可用的选项如下:
-
start
-
end
-
center
-
baseline
-
stretch (browser default)
让我们看一个对齐项工具类的示例:
Example
你可以编辑并尝试运行此代码,使用 编辑和运行 选项。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Flex</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/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container mt-5">
<h4>Flex utilities - align self</h4>
<div class="d-flex flex-row border bg-light mb-4" style="height:150px;">
<div class="border border-dark p-2 text-bg-success">
Item 1
</div>
<div class="align-self-start border border-dark p-2 text-bg-primary">
align start
</div>
<div class="border border-dark p-2 text-bg-danger">
Item 3
</div>
</div>
<div class="d-flex flex-row border bg-light" style="height:150px;">
<div class="border border-dark p-2 bg-info-subtle">
Item 1
</div>
<div class="align-self-end border border-dark p-2 bg-secondary-subtle">
align end
</div>
<div class="border border-dark p-2 bg-warning-subtle">
Item 3
</div>
</div>
<div class="d-flex flex-row border bg-light" style="height:150px;">
<div class="align-self-center border border-dark p-2 text-bg-info">
align center
</div>
<div class="border border-dark p-2 text-bg-secondary">
Item 2
</div>
<div class="border border-dark p-2 text-bg-warning">
Item 3
</div>
</div>
<div class="d-flex flex-row border bg-light" style="height:150px;">
<div class="border border-dark p-2 bg-info-subtle">
Item 1
</div>
<div class="align-self-baseline border border-dark p-2 bg-secondary-subtle">
align baseline
</div>
<div class="border border-dark p-2 bg-warning-subtle">
Item 3
</div>
</div>
<div class="d-flex flex-row border bg-light mb-4" style="height:150px;">
<div class="border border-dark p-2 text-bg-success">
Item 1
</div>
<div class="border border-dark p-2 text-bg-primary">
Item 2
</div>
<div class="align-self-stretch border border-dark p-2 text-bg-danger">
align stretch
</div>
</div>
</div>
</body>
</html>
类 .align-self 也提供了适用于不同屏幕大小的变量:
-
.align-self-start
-
.align-self-end
-
.align-self-center
-
.align-self-baseline
-
.align-self-stretch
-
.align-self-sm-start
-
.align-self-sm-end
-
.align-self-sm-center
-
.align-self-sm-baseline
-
.align-self-sm-stretch
-
.align-self-md-start
-
.align-self-md-end
-
.align-self-md-center
-
.align-self-md-baseline
-
.align-self-md-stretch
-
.align-self-lg-start
-
.align-self-lg-end
-
.align-self-lg-center
-
.align-self-lg-baseline
-
.align-self-lg-stretch
-
.align-self-xl-start
-
.align-self-xl-end
-
.align-self-xl-center
-
.align-self-xl-baseline
-
.align-self-xl-stretch
-
.align-self-xxl-start
-
.align-self-xxl-end
-
.align-self-xxl-center
-
.align-self-xxl-baseline
-
.align-self-xxl-stretch
Fill
将 .flex-fill 类应用到一组兄弟元素时,它们会自动调整宽度以匹配内容(如果内容未超出其边框盒,则宽度相同),有效利用所有可用的水平空间。
让我们看 .flex-fill 类的示例:
Example
你可以编辑并尝试运行此代码,使用 编辑和运行 选项。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Flex</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/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container mt-5">
<h4>Flex utilities - flex-fill</h4>
<div class="d-flex border border-dark bg-danger-subtle">
<div class="p-2 border border-dark flex-fill">Flex item showing a longer string of text.</div>
<div class="p-2 border border-dark flex-fill">Item</div>
<div class="p-2 border border-dark flex-fill">Flex Item 3</div>
</div>
</div>
</body>
</html>
适合不同屏幕大小的变体也适用于类 .flex-fill :
-
.flex-fill
-
.flex-sm-fill
-
.flex-md-fill
-
.flex-lg-fill
-
.flex-xl-fill
-
.flex-xxl-fill
Grow
您可以利用 .flex-grow- * 实用程序类来控制 flex 项是否应扩展以占据可用空间。
让我们看 .flex-grow 类的示例:
Example
你可以编辑并尝试运行此代码,使用 编辑和运行 选项。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Flex</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/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container mt-3">
<h4>Flex utilities - flex-grow</h4>
<div class="d-flex border border-dark bg-danger-subtle">
<div class="p-2 border border-dark">Flex item</div>
<div class="p-2 flex-grow-1 border border-dark">Flex</div>
<div class="p-2 border border-dark">Third flex item</div>
</div>
</div>
</body>
</html>
Shrink
您可以利用 .flex-shrink- * 实用程序类来控制 flex 项是否应按需要进行收缩。
让我们看 .flex-shrink 类的示例:
Example
你可以编辑并尝试运行此代码,使用 编辑和运行 选项。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Flex</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/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container mt-3">
<h4>Flex utilities - flex-shrink</h4>
<div class="d-flex border border-dark bg-danger-subtle">
<div class="p-2 border border-dark w-100">Flex item taking up all the space</div>
<div class="p-2 border border-dark flex-shrink-1">Flex item shrink</div>
</div>
</div>
</body>
</html>
针对不同屏幕大小的变体也适用于类 .flex-grow 和 .flex-shrink :
-
.flex-{grow|shrink}-0
-
.flex-{grow|shrink}-1
-
.flex-sm-{grow|shrink}-0
-
.flex-sm-{grow|shrink}-1
-
.flex-md-{grow|shrink}-0
-
.flex-md-{grow|shrink}-1
-
.flex-lg-{grow|shrink}-0
-
.flex-lg-{grow|shrink}-1
-
.flex-xl-{grow|shrink}-0
-
.flex-xl-{grow|shrink}-1
-
.flex-xxl-{grow|shrink}-0
-
.flex-xxl-{grow|shrink}-1
Auto margins
您可以将 flex 对齐与自动边距混合。
可以使用以下类与自动边距结合使用:
-
me-auto - 将 flex 项推至极右侧。
-
ms-auto - 将 flex 项推至极左侧。
-
默认情况下没有自动边距。
让我们看自动边距类的示例:
Example
你可以编辑并尝试运行此代码,使用 编辑和运行 选项。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Flex</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/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container mt-3">
<h4>Flex utilities - auto margin</h4>
<div class="d-flex mb-3 bg-primary-subtle">
<div class="p-2 border border-dark">No margin</div>
<div class="p-2 border border-dark">No margin</div>
<div class="p-2 border border-dark">No margin</div>
</div>
<div class="d-flex mb-3 bg-warning-subtle">
<div class="me-auto p-2 border border-dark">Right margin</div>
<div class="p-2 border border-dark">Right margin</div>
<div class="p-2 border border-dark">Right margin</div>
</div>
<div class="d-flex mb-3 bg-danger-subtle">
<div class="p-2 border border-dark">Left margin</div>
<div class="p-2 border border-dark">Left margin</div>
<div class="ms-auto p-2 border border-dark">Left margin</div>
</div>
</div>
</body>
</html>
With align-items
要将 flex 项定位在容器的顶部或底部,请使用 align-items, flex-direction: column ,以及 margin-top: auto 或 margin-bottom: auto 来进行垂直调整。
我们看一个示例:
Example
你可以编辑并尝试运行此代码,使用 编辑和运行 选项。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Flex</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/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container mt-3">
<h4>Flex utilities - with align items</h4>
<div class="d-flex align-items-start flex-column mb-3 text-bg-success border border-dark" style="height: 200px;">
<div class="mb-auto p-2 border border-dark">Align to left</div>
<div class="p-2 border border-dark">Align to left</div>
<div class="p-2 border border-dark">Align to left</div>
</div>
<div class="d-flex align-items-end flex-column mb-3 text-bg-warning border border-dark" style="height: 200px;">
<div class="p-2 border border-dark">Align to right</div>
<div class="p-2 border border-dark">Align to right</div>
<div class="mt-auto p-2 border border-dark">Align to right</div>
</div>
</div>
</body>
</html>
在上面的示例中, mt-auto 表示 margin-top: auto 而 mb-auto 表示 margin-bottom: auto 。
Wrap
可以包装 flex 容器中的 flex 项。以下是可以用于包装 flex 项的实用程序类:
-
.flex-nowrap - 无包装(默认)。
-
.flex-wrap - 换行包装 flex 项。
-
.flex-wrap-reverse - 用于灵活项目反向包裹。
让我们看一个 .flex-nowrap 类的示例:
Example
你可以编辑并尝试运行此代码,使用 编辑和运行 选项。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Flex</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/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container mt-5">
<h4>Flex utilities - no wrap</h4>
<div class="d-flex flex-nowrap text-bg-success border border-dark">
<div class="p-2 border border-dark">Flex Item 1</div>
<div class="p-2 border border-dark">Flex Item 2</div>
<div class="p-2 border border-dark">Flex Item 3</div>
<div class="p-2 border border-dark">Flex Item 4</div>
<div class="p-2 border border-dark">Flex Item 5</div>
<div class="p-2 border border-dark">Flex Item 6</div>
</div>
</div>
</body>
</html>
让我们看一个 .flex-wrap 类的示例:
Example
你可以编辑并尝试运行此代码,使用 编辑和运行 选项。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Flex</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/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container mt-5">
<h4>Flex utilities - wrap items</h4>
<div class="d-flex flex-wrap text-bg-success border border-dark">
<div class="p-2 border border-dark">Wrap Flex Item 1</div>
<div class="p-2 border border-dark">Wrap Flex Item 2</div>
<div class="p-2 border border-dark">Wrap Flex Item 3</div>
<div class="p-2 border border-dark">Wrap Flex Item 4</div>
<div class="p-2 border border-dark">Wrap Flex Item 5</div>
<div class="p-2 border border-dark">Wrap Flex Item 6</div>
<div class="p-2 border border-dark">Wrap Flex Item 7</div>
<div class="p-2 border border-dark">Wrap Flex Item 8</div>
<div class="p-2 border border-dark">Wrap Flex Item 9</div>
<div class="p-2 border border-dark">Wrap Flex Item 10</div>
<div class="p-2 border border-dark">Wrap Flex Item 11</div>
<div class="p-2 border border-dark">Wrap Flex Item 12</div>
</div>
</div>
</body>
</html>
让我们看一个 .flex-wrap-reverse 类的示例:
Example
你可以编辑并尝试运行此代码,使用 编辑和运行 选项。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Flex</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/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container mt-5">
<h4>Flex utilities - wrap reverse items</h4>
<div class="d-flex flex-wrap-reverse text-bg-success border border-dark">
<div class="p-2 border border-dark">Wrap reverse Item 1</div>
<div class="p-2 border border-dark">Wrap reverse Item 2</div>
<div class="p-2 border border-dark">Wrap reverse Item 3</div>
<div class="p-2 border border-dark">Wrap reverse Item 4</div>
<div class="p-2 border border-dark">Wrap reverse Item 5</div>
<div class="p-2 border border-dark">Wrap reverse Item 6</div>
<div class="p-2 border border-dark">Wrap reverse Item 7</div>
<div class="p-2 border border-dark">Wrap reverse Item 8</div>
<div class="p-2 border border-dark">Wrap reverse Item 9</div>
<div class="p-2 border border-dark">Wrap reverse Item 10</div>
<div class="p-2 border border-dark">Wrap reverse Item 11</div>
<div class="p-2 border border-dark">Wrap reverse Item 12</div>
</div>
</div>
</body>
</html>
还可以根据不同的屏幕尺寸自动调整 .flex-wrap 类:
-
.flex-nowrap
-
.flex-wrap
-
.flex-wrap-reverse
-
.flex-sm-nowrap
-
.flex-sm-wrap
-
.flex-sm-wrap-reverse
-
.flex-md-nowrap
-
.flex-md-wrap
-
.flex-md-wrap-reverse
-
.flex-lg-nowrap
-
.flex-lg-wrap
-
.flex-lg-wrap-reverse
-
.flex-xl-nowrap
-
.flex-xl-wrap
-
.flex-xl-wrap-reverse
-
.flex-xxl-nowrap
-
.flex-xxl-wrap
-
.flex-xxl-wrap-reverse
Order
使用 order 实用程序,可更改特定 flex 项目的可视顺序。
-
此选项仅可用于让项目成为第一个或最后一个,以及重置以利用 DOM 顺序。
-
order 接受从 0 到 5 的整数值。
让我们看一个 .order 类的示例:
Example
你可以编辑并尝试运行此代码,使用 编辑和运行 选项。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Flex</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/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container mt-5">
<h4>Flex utilities - order change</h4>
<div class="d-flex flex-nowrap text-bg-danger border border-dark">
<div class="order-4 p-3 border border-dark">Item one</div>
<div class="order-1 p-3 border border-dark">Item two</div>
<div class="order-2 p-3 border border-dark">Item three</div>
<div class="order-5 p-3 border border-dark">Item four</div>
<div class="order-3 p-3 border border-dark">Item five</div>
<div class="order-0 p-3 border border-dark">Item six</div>
</div>
</div>
</body>
</html>
还可以根据不同的屏幕尺寸自动调整 .order 类:
-
.order-0
-
.order-1
-
.order-2
-
.order-3
-
.order-4
-
.order-5
-
.order-sm-0
-
.order-sm-1
-
.order-sm-2
-
.order-sm-3
-
.order-sm-4
-
.order-sm-5
-
.order-md-0
-
.order-md-1
-
.order-md-2
-
.order-md-3
-
.order-md-4
-
.order-md-5
-
.order-lg-0
-
.order-lg-1
-
.order-lg-2
-
.order-lg-3
-
.order-lg-4
-
.order-lg-5
-
.order-xl-0
-
.order-xl-1
-
.order-xl-2
-
.order-xl-3
-
.order-xl-4
-
.order-xl-5
-
.order-xxl-0
-
.order-xxl-1
-
.order-xxl-2
-
.order-xxl-3
-
.order-xxl-4
-
.order-xxl-5
此外,还有称为 .order-first 和 .order-last 的类,它们是响应式的,并且分别通过为元素分配 -1 和 6 的顺序,修改元素的顺序。
-
.order-first
-
.order-last
-
.order-sm-first
-
.order-sm-last
-
.order-md-first
-
.order-md-last
-
.order-lg-first
-
.order-lg-last
-
.order-xl-first
-
.order-xl-last
-
.order-xxl-first
-
.order-xxl-last
Align content
为了在交叉轴上将 flexbox 容器的 flex 项目对齐,请使用 .align-content 实用程序。以下为可用的选项:
-
start (default)
-
end
-
center
-
between
-
around
-
stretch
我们已经启用了 flex-wrap: wrap 属性,并添加了更多 flex 项目以展示这些实用程序的功能。
让我们看一个 .align-content- * 类的示例:
Example
你可以编辑并尝试运行此代码,使用 编辑和运行 选项。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Flex</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/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container">
<h4>Flex utilities - align content</h4>
<!--align-content-start-->
<div class="d-flex flex-column bd-highlight text-bg-info mb-3 flex-wrap align-content-start">
<div class="border p-2 bd-highlight">
Flex item 1
</div>
<div class="border p-2 bd-highlight">
Flex item 2
</div>
<div class="border p-2 bd-highlight">
Flex item 3
</div>
</div>
<!--align-content-center-->
<div class="d-flex flex-column bd-highlight text-bg-warning mb-3 flex-wrap align-content-center">
<div class="border p-2 bd-highlight">
Flex item 1
</div>
<div class="border p-2 bd-highlight">
Flex item 2
</div>
<div class="border p-2 bd-highlight">
Flex item 3
</div>
</div>
<!--align-content-end-->
<div class="d-flex flex-column bd-highlight text-bg-danger mb-3 flex-wrap align-content-end">
<div class="border p-2 bd-highlight">
Flex item 1
</div>
<div class="border p-2 bd-highlight">
Flex item 2
</div>
<div class="border p-2 bd-highlight">
Flex item 3
</div>
</div>
<!--align-content-stretch-->
<div class="d-flex flex-column bd-highlight text-bg-primary mb-3 flex-wrap align-content-stretch">
<div class="border p-2 bd-highlight">
Flex item 1
</div>
<div class="border p-2 bd-highlight">
Flex item 2
</div>
<div class="border p-2 bd-highlight">
Flex item 3
</div>
</div>
</div>
</body>
</html>
还可以根据不同的屏幕尺寸自动调整 .align-content 类:
-
.align-content-start
-
.align-content-end
-
.align-content-center
-
.align-content-between
-
.align-content-around
-
.align-content-stretch
-
.align-content-sm-start
-
.align-content-sm-end
-
.align-content-sm-center
-
.align-content-sm-between
-
.align-content-sm-around
-
.align-content-sm-stretch
-
.align-content-md-start
-
.align-content-md-end
-
.align-content-md-center
-
.align-content-md-between
-
.align-content-md-around
-
.align-content-md-stretch
-
.align-content-lg-start
-
.align-content-lg-end
-
.align-content-lg-center
-
.align-content-lg-between
-
.align-content-lg-around
-
.align-content-lg-stretch
-
.align-content-xl-start
-
.align-content-xl-end
-
.align-content-xl-center
-
.align-content-xl-between
-
.align-content-xl-around
-
.align-content-xl-stretch
-
.align-content-xxl-start
-
.align-content-xxl-end
-
.align-content-xxl-center
-
.align-content-xxl-between
-
.align-content-xxl-around
-
.align-content-xxl-stretch
Media object
只需使用一些比以前提供更多灵活性和选项的 flex 实用程序,即可轻松快速地重新创建媒体对象组件。
我们看一个示例:
Example
你可以编辑并尝试运行此代码,使用 编辑和运行 选项。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Flex</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/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container">
<h4>Flex utilities - Media object</h4>
</div>
<div class="d-flex align-items-center border mx-4 w-50 mt-3">
<div class="flex-md-shrink-0">
<img src="https://i1.wp.com/simplesnippets.tech/wp-content/uploads/2018/07/tutorialspoint.jpg?resize=500%2C500&ssl=1">
</div>
<div class="flex-md-grow-1">
Content related to the image is placed at the center of the image, as we have used the class .align-items-center. The image is the logo of "Tutorials Point".
</div>
</div>
</body>
</html>