Skip to main content Skip to docs navigation

Quickly manage the layout, alignment, and sizing of grid columns, navigation, components, and more with a full suite of responsive flexbox utilities. For more complex implementations, custom CSS may be necessary.

Enable flex behaviors

Apply display utilities to create a flexbox container and transform direct children elements into flex items. Flex containers and items are able to be modified further with additional flex properties.

I'm a flexbox container!
<div class="d-flex p-2 bd-highlight">I'm a flexbox container!</div>
I'm an inline flexbox container!
<div class="d-inline-flex p-2 bd-highlight">I'm an inline flexbox container!</div>

Responsive variations also exist for .d-flex and .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

Set the direction of flex items in a flex container with direction utilities. In most cases you can omit the horizontal class here as the browser default is row. However, you may encounter situations where you needed to explicitly set this value (like responsive layouts).

用于.flex-row设置水平方向(浏览器默认),或.flex-row-reverse从对面开始水平方向。

弹性项目 1
弹性项目 2
弹性项目 3
弹性项目 1
弹性项目 2
弹性项目 3
<div class="d-flex flex-row bd-highlight mb-3">
  <div class="p-2 bd-highlight">Flex item 1</div>
  <div class="p-2 bd-highlight">Flex item 2</div>
  <div class="p-2 bd-highlight">Flex item 3</div>
</div>
<div class="d-flex flex-row-reverse bd-highlight">
  <div class="p-2 bd-highlight">Flex item 1</div>
  <div class="p-2 bd-highlight">Flex item 2</div>
  <div class="p-2 bd-highlight">Flex item 3</div>
</div>

用于.flex-column设置垂直方向,或.flex-column-reverse从对面开始垂直方向。

弹性项目 1
弹性项目 2
弹性项目 3
弹性项目 1
弹性项目 2
弹性项目 3
<div class="d-flex flex-column bd-highlight mb-3">
  <div class="p-2 bd-highlight">Flex item 1</div>
  <div class="p-2 bd-highlight">Flex item 2</div>
  <div class="p-2 bd-highlight">Flex item 3</div>
</div>
<div class="d-flex flex-column-reverse bd-highlight">
  <div class="p-2 bd-highlight">Flex item 1</div>
  <div class="p-2 bd-highlight">Flex item 2</div>
  <div class="p-2 bd-highlight">Flex item 3</div>
</div>

也存在响应变化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-contentflexbox 容器上的实用程序来更改 flex 项目在主轴上的对齐方式(x 轴开始,y 轴 if flex-direction: column)。从start(浏览器默认)、endcenterbetweenaround或中选择evenly

弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
<div class="d-flex justify-content-start">...</div>
<div class="d-flex justify-content-end">...</div>
<div class="d-flex justify-content-center">...</div>
<div class="d-flex justify-content-between">...</div>
<div class="d-flex justify-content-around">...</div>
<div class="d-flex justify-content-evenly">...</div>

也存在响应变化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-itemsflexbox 容器上的实用程序来更改 flex 项目在交叉轴上的对齐方式(y 轴开始,x 轴 if flex-direction: column)。从startendcenterbaselinestretch(浏览器默认)中选择。

弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
<div class="d-flex align-items-start">...</div>
<div class="d-flex align-items-end">...</div>
<div class="d-flex align-items-center">...</div>
<div class="d-flex align-items-baseline">...</div>
<div class="d-flex align-items-stretch">...</div>

也存在响应变化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

对齐自我

在 flexbox 项目上使用align-self实用程序来单独更改它们在交叉轴上的对齐方式(y 轴开始,x 轴 if flex-direction: column)。align-items从与: startendcenterbaselinestretch(浏览器默认)相同的选项中进行选择。

弹性项目
对齐的弹性项目
弹性项目
弹性项目
对齐的弹性项目
弹性项目
弹性项目
对齐的弹性项目
弹性项目
弹性项目
对齐的弹性项目
弹性项目
弹性项目
对齐的弹性项目
弹性项目
<div class="align-self-start">Aligned flex item</div>
<div class="align-self-end">Aligned flex item</div>
<div class="align-self-center">Aligned flex item</div>
<div class="align-self-baseline">Aligned flex item</div>
<div class="align-self-stretch">Aligned flex item</div>

也存在响应变化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

充满

在一系列同级元素上使用.flex-fill该类来强制它们的宽度等于它们的内容(或者如果它们的内容不超过它们的边界框,则它们的宽度相等),同时占用所有可用的水平空间。

内容丰富的弹性项目
弹性项目
弹性项目
<div class="d-flex bd-highlight">
  <div class="p-2 flex-fill bd-highlight">Flex item with a lot of content</div>
  <div class="p-2 flex-fill bd-highlight">Flex item</div>
  <div class="p-2 flex-fill bd-highlight">Flex item</div>
</div>

也存在响应变化flex-fill

  • .flex-fill
  • .flex-sm-fill
  • .flex-md-fill
  • .flex-lg-fill
  • .flex-xl-fill
  • .flex-xxl-fill

增长和收缩

使用.flex-grow-*实用程序来切换弹性项目的增长能力以填充可用空间。在下面的例子中,.flex-grow-1元素使用了它可以使用的所有可用空间,同时为剩余的两个弹性项目留出了必要的空间。

弹性项目
弹性项目
第三个弹性项目
<div class="d-flex bd-highlight">
  <div class="p-2 flex-grow-1 bd-highlight">Flex item</div>
  <div class="p-2 bd-highlight">Flex item</div>
  <div class="p-2 bd-highlight">Third flex item</div>
</div>

如有必要,使用.flex-shrink-*实用程序来切换弹性项目的收缩能力。在下面的示例中,第二个带有 的弹性项目.flex-shrink-1被强制将其内容换行,“收缩”以便为前一个带有 的弹性项目留出更多空间.w-100

弹性项目
弹性项目
<div class="d-flex bd-highlight">
  <div class="p-2 w-100 bd-highlight">Flex item</div>
  <div class="p-2 flex-shrink-1 bd-highlight">Flex item</div>
</div>

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

自动边距

当您将 flex 对齐与自动边距混合使用时,Flexbox 可以做一些非常棒的事情。下面显示了三个通过自动边距控制弹性项目的示例:默认(无自动边距)、向右推两个项目(.me-auto)和向左推两个项目(.ms-auto)。

弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
<div class="d-flex bd-highlight mb-3">
  <div class="p-2 bd-highlight">Flex item</div>
  <div class="p-2 bd-highlight">Flex item</div>
  <div class="p-2 bd-highlight">Flex item</div>
</div>

<div class="d-flex bd-highlight mb-3">
  <div class="me-auto p-2 bd-highlight">Flex item</div>
  <div class="p-2 bd-highlight">Flex item</div>
  <div class="p-2 bd-highlight">Flex item</div>
</div>

<div class="d-flex bd-highlight mb-3">
  <div class="p-2 bd-highlight">Flex item</div>
  <div class="p-2 bd-highlight">Flex item</div>
  <div class="ms-auto p-2 bd-highlight">Flex item</div>
</div>

使用对齐项

align-items通过混合、flex-direction: columnmargin-top: auto或将一个弹性项目垂直移动到容器的顶部或底部margin-bottom: auto

弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
<div class="d-flex align-items-start flex-column bd-highlight mb-3" style="height: 200px;">
  <div class="mb-auto p-2 bd-highlight">Flex item</div>
  <div class="p-2 bd-highlight">Flex item</div>
  <div class="p-2 bd-highlight">Flex item</div>
</div>

<div class="d-flex align-items-end flex-column bd-highlight mb-3" style="height: 200px;">
  <div class="p-2 bd-highlight">Flex item</div>
  <div class="p-2 bd-highlight">Flex item</div>
  <div class="mt-auto p-2 bd-highlight">Flex item</div>
</div>

更改弹性项目在弹性容器中的包装方式。选择完全不换行(浏览器默认设置).flex-nowrap,用 换行,用 换行.flex-wrap或反向换行.flex-wrap-reverse

弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
<div class="d-flex flex-nowrap">
  ...
</div>
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
<div class="d-flex flex-wrap">
  ...
</div>
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
<div class="d-flex flex-wrap-reverse">
  ...
</div>

也存在响应变化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我们只提供最先或最后制作项目的选项,以及重置以使用 DOM 顺序。由于order需要从 0 到 5 的任何整数值,请为所需的任何其他值添加自定义 CSS。

第一个弹性项目
第二个弹性项目
第三个弹性项目
<div class="d-flex flex-nowrap bd-highlight">
  <div class="order-3 p-2 bd-highlight">First flex item</div>
  <div class="order-2 p-2 bd-highlight">Second flex item</div>
  <div class="order-1 p-2 bd-highlight">Third flex item</div>
</div>

也存在响应变化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类,它们分别通过应用和来改变order元素的。order: -1order: 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 项在交叉轴上对齐。从start(浏览器默认)、endcenterbetweenaround或中选择stretch。为了演示这些实用程序,我们强制执行flex-wrap: wrap并增加了弹性项目的数量。

小心!此属性对单行弹性项目没有影响。

弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
<div class="d-flex align-content-start flex-wrap">
  ...
</div>
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
<div class="d-flex align-content-end flex-wrap">...</div>
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
<div class="d-flex align-content-center flex-wrap">...</div>
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
<div class="d-flex align-content-between flex-wrap">...</div>
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
<div class="d-flex align-content-around flex-wrap">...</div>
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
弹性项目
<div class="d-flex align-content-stretch flex-wrap">...</div>

也存在响应变化align-content

  • .align-content-start
  • .align-content-end
  • .align-content-center
  • .align-content-around
  • .align-content-stretch
  • .align-content-sm-start
  • .align-content-sm-end
  • .align-content-sm-center
  • .align-content-sm-around
  • .align-content-sm-stretch
  • .align-content-md-start
  • .align-content-md-end
  • .align-content-md-center
  • .align-content-md-around
  • .align-content-md-stretch
  • .align-content-lg-start
  • .align-content-lg-end
  • .align-content-lg-center
  • .align-content-lg-around
  • .align-content-lg-stretch
  • .align-content-xl-start
  • .align-content-xl-end
  • .align-content-xl-center
  • .align-content-xl-around
  • .align-content-xl-stretch
  • .align-content-xxl-start
  • .align-content-xxl-end
  • .align-content-xxl-center
  • .align-content-xxl-around
  • .align-content-xxl-stretch

媒体对象

想要从 Bootstrap 4复制媒体对象组件?使用一些 flex 实用程序立即重新创建它,这些实用程序允许比以前更大的灵活性和自定义。

Placeholder Image
这是来自媒体组件的一些内容。您可以将其替换为任何内容并根据需要进行调整。
<div class="d-flex">
  <div class="flex-shrink-0">
    <img src="..." alt="...">
  </div>
  <div class="flex-grow-1 ms-3">
    This is some content from a media component. You can replace this with any content and adjust it as needed.
  </div>
</div>

并假设您要将图像旁边的内容垂直居中:

Placeholder Image
这是来自媒体组件的一些内容。您可以将其替换为任何内容并根据需要进行调整。
<div class="d-flex align-items-center">
  <div class="flex-shrink-0">
    <img src="..." alt="...">
  </div>
  <div class="flex-grow-1 ms-3">
    This is some content from a media component. You can replace this with any content and adjust it as needed.
  </div>
</div>

萨斯

实用程序 API

Flexbox 实用程序在我们的实用程序 API 中声明scss/_utilities.scss了解如何使用实用程序 API。

    "flex": (
      responsive: true,
      property: flex,
      values: (fill: 1 1 auto)
    ),
    "flex-direction": (
      responsive: true,
      property: flex-direction,
      class: flex,
      values: row column row-reverse column-reverse
    ),
    "flex-grow": (
      responsive: true,
      property: flex-grow,
      class: flex,
      values: (
        grow-0: 0,
        grow-1: 1,
      )
    ),
    "flex-shrink": (
      responsive: true,
      property: flex-shrink,
      class: flex,
      values: (
        shrink-0: 0,
        shrink-1: 1,
      )
    ),
    "flex-wrap": (
      responsive: true,
      property: flex-wrap,
      class: flex,
      values: wrap nowrap wrap-reverse
    ),
    "gap": (
      responsive: true,
      property: gap,
      class: gap,
      values: $spacers
    ),
    "justify-content": (
      responsive: true,
      property: justify-content,
      values: (
        start: flex-start,
        end: flex-end,
        center: center,
        between: space-between,
        around: space-around,
        evenly: space-evenly,
      )
    ),
    "align-items": (
      responsive: true,
      property: align-items,
      values: (
        start: flex-start,
        end: flex-end,
        center: center,
        baseline: baseline,
        stretch: stretch,
      )
    ),
    "align-content": (
      responsive: true,
      property: align-content,
      values: (
        start: flex-start,
        end: flex-end,
        center: center,
        between: space-between,
        around: space-around,
        stretch: stretch,
      )
    ),
    "align-self": (
      responsive: true,
      property: align-self,
      values: (
        auto: auto,
        start: flex-start,
        end: flex-end,
        center: center,
        baseline: baseline,
        stretch: stretch,
      )
    ),
    "order": (
      responsive: true,
      property: order,
      values: (
        first: -1,
        0: 0,
        1: 1,
        2: 2,
        3: 3,
        4: 4,
        5: 5,
        last: 6,
      ),
    ),